关于@RequestParam注解使用

1、可以对传入参数指定参数名

@RequestParam String inputStr  
// 下面的对传入参数指定为aa,如果前端不传aa参数名,会报错  
@RequestParam(value="aa") String inputStr  
**错误信息:** 
**HTTP Status 400 - Required String parameter 'aa' is not present** 

2、可以通过required=false或者true来要求@RequestParam配置的前端参数是否一定要传

// required=false表示不传的话,会给参数赋值为null,required=true就是必须要有  
@RequestMapping("testRequestParam")    
public String filesUpload(
    @RequestParam(value="aa", required=true) String inputStr,
     HttpServletRequest request)  

3、如果用@RequestMapping注解的参数是int基本类型,但是required=false,这时如果不传参数值会报错,因为不传值,会赋值为null给int,这个不可以

@RequestMapping("testRequestParam")    
public String filesUpload(
    @RequestParam(value="aa", required=true) String inputStr, 
    @RequestParam(value="inputInt", required=false) int inputInt,
    HttpServletRequest request) {    
// ......省略  
return "index";  
}  

解决方法:
“Consider declaring it as object wrapper for the corresponding primitive type.”建议使用包装类型代替基本类型,如使用“Integer”代替“int”

@RequestParam 有三个属性:
(1)value:请求参数名(必须配置)
(2)required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
(3)defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)

具体配置方法:
(1)配置一个属性

@RequestParam("") 或 @RequestParam(value="")

(2)配置多个属性

@RequestParam(value="", required=true, defaultValue="")
发布了93 篇原创文章 · 获赞 93 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/qq_41937388/article/details/103063877