参数绑定
简单类型参数绑定
- 方法参数名称和请求参数名称一致,如url:xxx/rpdsearch?devName=123&devNum=0
@RequestMapping(value = "/rpdsearch", method = RequestMethod.GET)
public String rpdsearch(ModelMap map, String devName, Integer devNum){
...
}
- 方法参数名称和请求参数名称不一致时使用@RequestParam指定名称
@RequestParam可以指定:参数名(value )、默认值(defaultValue )、存在(required)
@RequestMapping(value = "/rpdsearch", method = RequestMethod.GET)
public String rpdsearch(ModelMap map, @RequestParam(value = "devName", defaultValue = "")String name, @RequestParam(value = "devNum", defaultValue = "0")Integer num){
...
}
包装类型参数绑定
- 请求参数id必须和实体类名称相同,因为springmvc是通过set方法赋值的
参数中使用自定义类时会被springmvc的处理器映射器解析,并通过相关set方法绑定到类成员
@RequestMapping(value = "/rpdsearch", method = RequestMethod.GET)
public String rpdsearch(ModelMap map, Device device){
}
日常填坑
- 参数绑定时,包装类型为null导致空指针异常,如xxx/rpdsearch?devNum=,devNum为Integer时为null,可指定默认值解决
- 包装类型的参数绑定时,前台出入空值会造成400错误。解决方案是接收简单类型参数(因为可设置默认值,不会出现空值)再逐一赋值给包装类型,或者包装类型设置默认值??