SpringMVC的常用注解及其属性
@RequestMapping: value和path 用于指定类或方法的路径
params:字符串数组参数,指定请求必须带有的参数。
method:数组参数。用于指定请求方式。
@RequestParam:用于封装数据。SpringMVC的自动封装要求参数名要一致。所以不一致的情况下,就得使用 该注解。
value和name都是一样的,指定页面参数名称。
required(默认是true),表示是否必须有该参数。
如:(@RequestParam(name=“username”) String name)
首先就是页面参数必须要有username,接下springMVC会把username的值传给name
@RequestBody: 用于获取请求体,形势为key=value&key=value。。。的字符串
用法为(@RequestBody String body)
@PathVariable: 用于绑定url中的占位符。如:
@RequestMapping("/test/{id}")
public void testPathVariable(@PathVariable(name="id") String urlId) {
//假如url是 localhost:8080/test/100
//那么urlId就是100
}
@ModelAttribute: 该注解可以修饰方法,被修饰的方法会先折行。
一般用来处理页面参数。如:
@ModelAttribute
//假如传如“张三”
public User showUser(String name){
User user = new User();
user.setName(uname);
user.setAge(20);
return user;
}
@RequestMapping(value="/test")
public String testModelAttribute(User user){
// 输出 name=张三;age=20
//@ModelAttribute修饰的方法的返回值自动填充为该方法的参数
System.out.println(user);
}
@ModelAttribute也可以作用在参数上。如:
@RequestMapping(value="/test")
//用@ModelAttribute将map里的对象取出来
public String testModelAttribute(@ModelAttribute("test") User user){
System.out.println(user);
}
@ModelAttribute
public void showUser(String name, Map<String,User> map){
User user = new User();
user.setName(name);
user.setAge(20);
//将封装的数据放到Map集合里
map.put("test",user);
}
@SessionAttributes:关于session域的数据存取。它是一个作用在类上的注解。
@RequestMapping(value="/testSessionAttributes")
public String testSessionAttributes(Model model){
// 会存储到request域对象中
//在类上使用@SessionAttributes(value={"msg"}),数据就会存到session域
model.addAttribute("msg","123");
}
@RequestMapping(value="/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){
//从session域里面取值
String msg = (String) modelMap.get("msg");
}
@RequestMapping(value="/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){
//将数据从session域里删除
status.setComplete();
}
//以上代码实现前提是类上有 @SessionAttributes(value={"msg"}) 不然只是操作request域
@ResponseBody:当方法的返回值是一个对象的时候,使用该注解。该注解会将返回的对象转换为json并输出。