我在Tomcat上有一个JSF 2.0应用程序,有很多<h:inputText>
字段可以在我的数据库中输入数据.某些字段不是必需的.
<h:inputText value="#{registerBean.user.phoneNumber}" id="phoneNumber">
<f:validateLength maximum="20" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)
当用户将此字段留空时,JSF设置空字符串""
而不是null
.
如何在不检查每个String的情况下修复此行为
if (string.equals("")) { string = null; }
Run Code Online (Sandbox Code Playgroud) 有没有一种简单的方法可以将空表单输入转换为java中的空字符串?我正在使用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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
两个问题 - 首先,没有getAsText,所以我的表单填充了"null"字符串!2,我的等式检查是C++,而不是java.当我尝试推荐的setter时,我只是重新加载了已经包含"null"字符串的帖子.一旦我清理了所有这些,一切都开始工作了.感谢您的帮助,对不起我的"操作员错误"!
布雷特