springMVC中绑定参数的常用注解

1.@RequestMapping用来映射一个请求或方法,它有几个属性(value,methed,consumes:数据类型,如json,produces:返回类型如json,params,headers),当使用多个属性时,必须带value,只有value属性时

RequestMapping("/test")==RequestMapping(value="/test")

2.@RequestParam

有四个属性:name,value,required(是否必须绑定参数,默认为true,当不一定绑定参数时,需要用false,不然没参数时会报错),defaultValue(如果没有传递参数则使用默认值)

用法:直接在方法的参数里使用,比如

3.@RequestMapping("/XX")

public String hello(@RequestParam("name")String name){}

//public String hello(@RequestParam(value="name",required=true,defaultValue="admin"){}

@PathVariable注解

此注解是获得URL(请求)中的动态参数,只有一个属性value(String),如:

请求为:/test/${id}

@RequestMapping(value="/test/{id}")

public void test(@PathVariable Integer id)

当然也可以:

@RequestMapping("/test")

public void test(@RequestParam("id")Integer id){ }

4.@SessionAttributes

指定Model中的哪些属性转存到HttpSession对象中.

此注解只能声明在类上,不能声明在方法上.

如:

@SessionAttribute("user");

在方法中:

Model model;

model.addAttribute("user",user);

将Model中的属性名为user的属性放入HttpSession对象中.

也可以这样写:

@SessionAttributes(type={User.class},value="user")

@SessionAttributes(type={User.class,Student.class},value={"user","student"})

前台获取:

${requestScope.user.userName}

5.@ModelAttribute

此注解也是绑定参数到Model上,但是在Controller的每个方法前被执行,如:

@ModelAttribute("test")

public String test(@RequestPara("tets")String test)){

retrun test;

}

return相当于是model.addAttribute("test",test);

在前台使用:${requestScope.test}

具体的可以参考http://blog.csdn.net/catoop/article/details/51171108

6.@ResponseBody

此注解表示该方法的返回结果直接写入HTTP response body中,

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。

如:

@RequestMapping("/json")

@RequestBody

public Object hh(){

List bookList=new ArraryList();

list.add(new book(1,"spring","hh"));

return list;

}}

此方法会将List集合数据转换成json格式,然后将其返回到客户端.

同时,@ReqestBody也可以处理xml数据.

原文地址:https://www.cnblogs.com/yeleia/p/7535591.html