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="")