简介
@RequestParam是SpringMVC中常用的注解之一,用于获取HTTP请求中的参数。
基本语法
@RequestParam注解可以添加在方法参数前面,用于指定需要获取的参数名称,例如:
代码语言:javascript复制@RequestMapping(value="/users", method=RequestMethod.GET)
public ModelAndView getUsers(@RequestParam(value="page") int pageNum) {
// 方法体
}
在上面的示例中,我们使用@RequestParam注解来获取名为page的请求参数,并将参数值转换为整数类型,赋值给pageNum变量。
@RequestParam注解的value属性用于指定参数名称,如果请求中没有指定该参数,则会抛出MissingServletRequestParameterException异常。如果想要指定参数的默认值,则可以使用@RequestParam的defaultValue属性,例如:
代码语言:javascript复制@RequestMapping(value="/users", method=RequestMethod.GET)
public ModelAndView getUsers(@RequestParam(value="page", defaultValue="1") int pageNum) {
// 方法体
}
在上面的示例中,我们为@RequestParam注解的defaultValue属性指定了默认值为1。如果请求中没有指定名为page的参数,则会将pageNum变量赋值为1。
@RequestParam注解还可以指定参数的数据类型和必需性,例如:
代码语言:javascript复制@RequestMapping(value="/users", method=RequestMethod.GET)
public ModelAndView getUsers(@RequestParam(value="page", required=false) Integer pageNum) {
// 方法体
}
在上面的示例中,我们使用@RequestParam注解的required属性来指定该参数是否是必需的。如果required属性为false,则可以不传递该参数;如果为true,则必须传递该参数。需要注意的是,如果@RequestParam注解的数据类型为基本数据类型,且required属性为true,但请求中没有指定该参数,则会抛出MissingServletRequestParameterException异常。为了避免这种情况,可以将@RequestParam注解的数据类型改为包装类型,例如上面示例中的Integer类型。
多个参数
@RequestParam注解还支持获取多个参数,例如:
代码语言:javascript复制@RequestMapping(value="/users", method=RequestMethod.GET)
public ModelAndView getUsers(@RequestParam(value="page") int pageNum, @RequestParam(value="size") int pageSize) {
// 方法体
}
在上面的示例中,我们使用了两个@RequestParam注解,分别获取名为page和size的请求参数。注意,@RequestParam注解可以指定不同的参数名称和数据类型,因此可以用于获取多个不同的请求参数。