我使用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);
}
}
}
有两个问题:
感谢你的帮助,并为我的“操作员错误”道歉!
布雷特
发布于 2010-06-05 05:21:18
您要查找的类是:
org.springframework.beans.propertyeditors.StringTrimmerEditor
如果您使用true
构造它,它会将空/空白字符串转换为null。如何将其注册到绑定器上取决于您是否希望将其设置为默认值或仅应用于某些视图。
例如,在单个控制器上,您只需添加
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
发布于 2013-11-05 22:13:42
我知道这很旧,但我浪费了大约2到3个小时,直到我找到了一个非常简单的方法来为我的所有控制器应用一个带有活页夹的StringTrimmerEditor
。
再说一次:我一定要记住RTFM。
在Spring3.2中,您可以创建一个@ControllerAdvice
-annottated控制器类并使用@InitBinder
-annotated方法,就像@Affe给出的示例一样。
下面是一个示例:
@ControllerAdvice
@Controller
public class AppBindingInitializer {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(String.class, new StringTrimmerEditor(true));
}
}
希望这能帮助到别人。
发布于 2010-06-05 04:53:37
也许您可以使用custom Binder
https://stackoverflow.com/questions/2977649
复制相似问题