springMVC中@RequestParam和@RequestBody注解的用法

时间:2022-10-24 20:22:36

  springMVC中@RequestParam注解用在Controller层获解析、提取参数,当然你也可以用request.getParameter("name")来获取参数,而@RequestParam注解接收参数有几种不同的写法。

1、test(String name)

像正常的方法接收参数,不带@RequestParam注解。这种写法,如果没有name参数不会报错。

2、test(@RequestParam String name)

带@RequestParam注解。这种写法,name参数为必须,如果没有会报错。

3、test(@RequestParam("userName") String name)

带@RequestParam注解。这种写法,可以对接收的参数进行重命名。即接收到userName改成name。

4、test(@RequestParam(value="userName",request=false) String name)

带@RequestParam注解。这种写法,通过设置request参数来设定参数是否为必须,true为必须,false为非必须。

PS:@RequestBody注解也可以用来获取参数。与@RequestParam不同点在于:

@RequestParam注解通常处理content-type为默认的application/x-www-form-urlcoded的请求。

@RequestBody注解用来处理content-type为application/json或者是application/xml等。

比如:一个json格式的请求参数,且没有参数名,就可以用下面的方式获取。

1、test(@RequestBody String json)