在Spring MVC中,有没有一种简单的方法可以将空表单输入转换为空字符串?


问题内容

我正在使用Spring MVC和 SimpleJdbcInsert
将对象插入MySQL数据库。我想将空白输入设置NULL为数据库而不是''。我有很多字段,我希望找到一种无需手动检查每个值的方法。

谢谢!


更新

所以我是个白痴。我的一些错误综合使我相信以下正确答案是不正确的。我写了这样的 PropertyEditorSupport

class StringEditor extends PropertyEditorSupport {

    public void setAsText(String text) {
        String value = text.trim();
        if ("" == value) {
            setValue(null);  
        } else {  
            setValue(value);  
        }
    }

}

有两个问题:

  1. 没有getAsText,所以我的表单中填充了“空”字符串!
  2. 我的相等性检查是C ++,而不是Java。当我尝试推荐的二传手时,我只是重新加载了帖子,该帖子已经包含“空”字符串。一旦我清理了所有东西,一切就开始起作用。

感谢您的帮助,也很抱歉我的“操作员错误”!

布雷特


问题答案:

您要查找的课程是:

org.springframework.beans.propertyeditors.StringTrimmerEditor

如果使用a构造它,true它将把空白字符串转换为null。如何将其注册到活页夹中取决于您希望将其设置为默认值还是仅应用于某些视图。

例如,在单个控制器上,您只需添加

@InitBinder
public void initBinder(WebDataBinder binder) {
    binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}

这里的说明