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)