SpringMVC常用注解解释

SpringMVC常用注解详解

1.ResquestParam

​ 作用:把请求中指定名称的参数给控制器中的形参赋值

​ 属性:

​ value:请求参数中的名称

​ required:请求参数中是否必须提供此参数。默认值true。表示必须提供,如果不提供讲报错

当所传的参数名字不同是可以使用这可注解,但是一旦使用所传参数必须有RequestParam内相同名称的参数否则报错

SpringMVC常用注解解释_第1张图片

2.ResquestBody

​ 作用:

​ 用于获取请求题内容。直接使用得到是key=value&key=value…结构的数据。get请求不适用

​ 属性:

​ required:是否必须有请求体。默认值是ture。当取值为true时,get请求方式就会报错。如果取值为 false,get请求得到是null

SpringMVC常用注解解释_第2张图片

3.PathVariable

作用:

用于绑定url中的占位符。例如url中/delete/{id},这个ID就是url的占位符。url支持占位符是spring3.0之后加入的,是springmvc支持rest风格url的一个重要指标。

​ 属性:

​ value:用于指定url中占位符名称

​ required:是否必须提供占位符

SpringMVC常用注解解释_第3张图片
SpringMVC常用注解解释_第4张图片

4.HiddentHttpMethodFilter(了解)

​ 作用:

​ 用于浏览器from表单只能支持GET和POST请求,而DELETE,PUT等method并不支持,spring3.0添加了一个过滤器,可以将浏览器请求改为指定的请求方式,发给我们控制器方法,使得支持POSTPUT,DELETE,GRT,

​ 使用方法:

​ 第一步:在web.xml中配置该过滤器

​ 第二步:请求方式必须使用post请求

​ 第三步:按照要求提供method请求参数,该参数的取值就是我们需要的请求方式

5.RequestHeader(了解)

​ 作用:获取指定的cookie的名称的值

​ 属性:

​ 1.value:cookie的名称


SpringMVC常用注解解释_第5张图片

6.CookieValue(了解)

​ 作用:用于把指定cookie名称的值传入控制器方法参数

​ 属性:

​ value:用于指定cookie的名称

​ required:是否必须有此cookie

SpringMVC常用注解解释_第6张图片

7.ModelAttribute

​ 作用:

​ 该注解是springMVC4.3版本以后新加入的。它可以用于修饰方法和参数。

​ 1.出现在方法上,表示当前方法会在控制器的方法执行之前,先执行。它还可以修饰没有返回值的方法,也可以修饰有具体返回值的方法

​ 2.出现在参数上,获取指定的数据给参数赋值

​ 属性:

​ value:用于获取数据的key。key可以是POJO的属性名称,也可以是map结构的key

​ 应用场景:

​ 当表单提交数据不是完整的实体类数据时,保证没有提交数据的字段使用数据库对象原来的数 据

​ 例如:

我们在编辑一个用户时,用户有一个创建信息的字段,该字段的值不允许被修改的,在提交表单数据是肯定没有此字段的内容,一旦更新会把该字段内容设置为null,此时就可以使用次注解解决问题
SpringMVC常用注解解释_第7张图片

 public String testModelAttribute(@ModelAttribute("acdc") User user){  
     System.out.println("ModelAttribute执行了....");    
     System.out.println();     return "success"; 
 }
/* @ModelAttribute 
//该方法会先执行 
public User showUser(String uname){     
System.out.println("showUser执行了");     
//通过用户查询数据库(模拟)     
User user = new User();     
user.setAge(20);     
user.setUname(uname);     
user.setData(new Date());     
return user;  
//当没有返回值时,以下面的方法 } 
*/ 
@ModelAttribute 
//该方法会先执行 
public void showUser(String uname,Map map){     
    System.out.println("showUser执行了");     
    //通过用户查询数据库(模拟)     
    User user = new User();    
    user.setAge(20);     
    user.setUname(uname);     
    user.setData(new Date());     
    map.put("acdc",user); }

8,SessionAttributes

​ 作用:

​ 把参数存到session域中,只能用于类上

​ 同时用于多次执行控制器方法间的参数共享

​ 属性:

​ value:用于指定存入的属性名称

​ type:用于指定存入的数据类型
在这里插入图片描述

@RequestMapping("/testSessionAttributes")
/*注解SessionAttributes * */
public String testSessionAttributes(Model model){    
    System.out.println("执行了....");    
    //存储到request域对象中    
    model.addAttribute("mas","meiemi");    
    return "success";}
//获取值@RequestMapping("/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){    
    System.out.println("执行了....");    
    //在session域中取值  
    String mas = (String) modelMap.get("mas");  
    System.out.println(mas);    return "success";
	}
//清除session域中值
@RequestMapping("/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){
    System.out.println("执行了....");    
    //在session域清除值    
    status.setComplete();    
    return "success";}

你可能感兴趣的:(java,spring,web,mvc)