导航

SpringMVC中的常用注解

Posted on 2020-03-11 15:00  淮工一支烟  阅读(140)  评论(0)    收藏  举报

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){//目的是获取ModelMap中的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:是否必须拥有次消息头