SpringMVC 相关

参数绑定

简单类型参数绑定

  • 方法参数名称和请求参数名称一致,如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错误。解决方案是接收简单类型参数(因为可设置默认值,不会出现空值)再逐一赋值给包装类型,或者包装类型设置默认值??
原文地址:https://www.cnblogs.com/xiongyungang/p/13875400.html