SpringMVC中的常用注解
RequestParam
使用说明:
作用:1、把请求中指定名称的参数给控制器中的形参赋值
属性:value:请求参数的名称、required:请求参数中是否必须提供该参数,默认为true.
使用位置:控制器参数列表里,并且要注入的参数之前。
使用实例:
//测试使用@RequestParam注解。
@Controller
public class requestParamControlImpl implements IRequestParamControl {
@RequestMapping(path = "/param")
public String param(@RequestParam(value = "username")String name){
System.out.println(name);
return "success";
}
}
RequestBody
使用说明:
作用:用于获取请求具体的内容,直接使用得到的是key=value。get请求不适用
属性:required:是否必须要有请求体
使用位置:控制器方法参数列表中
使用实例:
//测试使用@RequestBody
@RequestMapping(path = "/RequestBody")
public String RequestBody(@RequestBody String name){
System.out.println(name);
return "success";
}
Pathvaribale
使用说明:
作用:将前端地址栏中的占位符与控制器的参数绑定,获得该占位符的值。如请求中的/springMVC/{id}。这和{id}就是占位符。这是支持Restful风格的表现。
注:什么是RestFul风格。
绑定控制器的url使用占位符。原来的url请求方式如:path=“springMVC/adduser”。而RestFul风格省去“/adduser”。若请求中待有参数,就在绑定控制器的url后面添加占位符:path=“springMVC/{id}”。前端请求时的地址为localhost:8080/springMVC/10。
使用实例:
@RequestMapping(path = "/PathVaribale/{id}")
public String PathVaribale(@PathVariable String name){
System.out.println(name);
return "success";
}
ModelAttribute
在此之前首先介绍ModelMap对象
ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据。通过以下方法向页面传递参数:addAttribute(String key,Object value);
在页面上可以通过el变量方式$key或者bboss的一系列数据展示标签获取并展示modelmap中的数据。
modelmap本身不能设置页面跳转的url地址别名或者物理跳转地址,那么我们可以通过控制器方法的返回值来设置跳转url地址别名或者物理跳转地址。
使用说明:
作用:1、使用在方法上,表示当前方法会在控制器方法之前执行,
2、使用在参数上,获取指定位置的值给参数赋值
属性:value:获取数据的key
使用案例:
修饰方法
//测试@ModelAttribute修饰的方法在控制器方法前先执行
@ModelAttribute
public void test(){
System.out.println("注解@modelAttribut的方法先执行");
}
修饰方法参数
-------------前端页面(没有输入日期这个选项)--------------
<form action="annotation/modelAttribute" method="post">
姓名<input type="text" name="username"><br>
密码<input type="text" name="password"><br>
<input type="submit" value="提交"><br>
</form>
-------------控制器--------------
//@ModelAttribute修饰的方法在控制器方法前先执行,在user这个对象中先插入当前对象
@ModelAttribute("user")
public user test(){
System.out.println("注解@modelAttribut的方法先执行");
user _user=new user();
_user.setDate(new Date());//添加当前时间到对象中
return _user;
}
@RequestMapping(path = "/modelAttribute")
public String modelAttrubute(@ModelAttribute("user") user _user){//目的是获取上个user对象
System.out.println(_user);
return "success";
}
SessionAttribute
使用说明:
作用:用于多次执行控制器方法之间的参数共享,指定将modelMap中的数据存入到session中。
属性:value:用于指定存入的数据名称
type:指定存入的数据参数
使用位置:类之前
@SessionAttributes
public class AnnotationsImpl implements IAnnotations {
@RequestMapping(path = "/SessionAttribute")
public String SessionAttribute(Model model){
model.addAttribute("1","lijie");
return "success";
}
}
CookieValue(了解)
使用说明:
作用:通过cookie的名称,将指定的cookie传入到控制器的参数 中
属性:value:cookie的名称
required:是否必须拥有此cookie
RequestHeader(了解)
使用说明:
作用:用于获得请求的消息头
属性:value:提供消息头的名称
required:是否必须拥有次消息头