问题描述
是不是只要在前台的表单中设置了像这样的绑定<input type="text" id="displayName" name="displayName" />不管有没有给它填值它都不会为null(不填值时为空“”),我现在有个问题是我调用的一个类库执行对象操作的时候不允许空值,没有值的时候只能用null将属性值删除而不是留一个空值。现在想问一下有没有什么办法可以让前端传回来的空值都为null,或者后台有没有类库或者机制来实现我要的效果。
解决方案
看看这个类能不能帮上忙org.springframework.beans.propertyeditors.StringTrimmerEditor参考http://stackoverflow.com/questions/2977649/is-there-an-easy-way-to-turn-empty-java-spring-form-input-into-null-strings
解决方案二:
覆盖MultiActionController中的initBinder方法:protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception{// 字符串截取空格,并将空格处理成Nullbinder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); super.initBinder(request, binder);}
解决方案三:
在javabean的set方法中判断传入的值是否是“”,如果是设置为null
解决方案四:
@RequestParam包含3个配置 @RequestParam(required = ,value="", defaultValue = "") required :参数是否必须,boolean类型,可选项,默认为true value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方法的参数 defaultValue:String类型,参数没有传递时为参数默认指定的值 你可以设置 某个参数 默认值 为空