请求路径
"/user"加在类前,是路径前缀。
@RestController
@RequestMapping("/user")
public class UserController {
@RequestMapping("/test")
public String test() {
System.out.println("user test");
return "{'module':'springmvc'}";
}
@RequestMapping("/test2")
public String test2() {
System.out.println("user test2");
return "{'module':'springmvc test2'}";
}
}
请求Get/Post
1. 参数接收就是增加形参。
2. 中文乱码解决
//com.android.config.ServletContainersInitConfig
//Ctrl+O,getServletFilters
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
3. 如果请求的名字和接收的名字不同,如:请求使用name,接收使用userName。使用@RequestParam。
@RequestMapping("/test2")
public String test2(@RequestParam("name") String userName) {
System.out.println("user test2");
return "{'module':'springmvc test2'}";
}
4. 传递实体类(pojo)
4.1 如果传递来的属性名和实体类中的属性名一样,则会把属性名自动塞到实体类对象中。
http://localhost:8080/AndroidServe/user/test3?passWord=12345&id=000
passWord=12345
id=000
//实体pojo类
public class User {
private Integer id;
private String userName;
private String passWord;
}
//可以看到这里只使用`user`来做接收参数
@RequestMapping("/test3")
public String test3(User user) {
System.out.println(user);
return "{'module':'springmvc test3'}";
}
4.2 实体类中有引用属性,如:User中有Address属性
address.city=
address.prov=
class User {
...
private Address address;
}
@RequestMapping("/test4")
public String test4(User user) { //依然使用User user接
...
}
4.3 数组
@RequestMapping("/test5")
public String test5(String[] likes) {
...
}
//相同的会自动装进String[] likes
likes=game
likes=music
likes=travel
4.4 集合 @RequestParam
@RequestMapping("/test6")
public String test6(@RequestParam List<String> likes) {
...
}
likes=game
likes=music
likes=travel