获得客户端传递参数的注解,我们之前学写了@PathVariable,用于获取URI Template中的参数。今天小博老师给大家介绍另一个获取参数的注解方法@RequestParam。
通过request.getParameter() 获取的String参数,在可以直接转换为简单类型(String,Integer,Long等)的情况下,都可以使用@RequestParam进行注解绑定。我们知道用request.getParameter()获取参数,即可以处理Get请求中的queryString的值,也可以处理post请求中的body值。所以@RequestParam即可以处理Content-Type是 application/x-www-form-urlencoded编码的内容,也可以处理URL中的queryString携带的参数。
如,RequestMapping定义的方法:
public String queryUser(@RequestParam String name)
客户端请求的URL: /**/?name=boweifeng,请求中包含name参数会自动传入。
@RequestParam注解的主要参数:
value:参数名字,即请求的参数名字。请求中的参数名与方法定义参数名一致时,可以省略。
required:是否必须。默认是true,表示请求中一定要有相应的参数,否则将报404错误码。
注意事项:
1. 如果有多个同名参数时,应使用数组或者列表接收参数。
如请求路径为:
url?name=51testing&name=51code
对应的方法应该写成:
public String queryUser(@RequestParam(value="name") String [] userNames)
或者
public String queryUser(@RequestParam(value="name") List<String> list)