Spring InitBinder:将float字段的空值或空值绑定为0
我只是想知道是否可以告诉@InitBinder将表单中的空浮点值转换为0。
我知道float是原始数据类型,但我仍然想将null或空值转换为0。
如果可能的话,我该如何实现?
否则,我将使用String而不是float进行变通
回答:
是的,您总是可以做到的.Spring有一个CustomNumberEditor
可以对任何Number子类(例如Integer,Long,Float,Double)进行可自定义的属性编辑器,默认情况下它由BeanWrapperImpl注册,但是可以通过将其自定义实例注册为custom来覆盖编辑器。这意味着您可以扩展这样的类
public class MyCustomNumberEditor extends CustomNumberEditor{ public MyCustomNumberEditor(Class<? extends Number> numberClass, NumberFormat numberFormat, boolean allowEmpty) throws IllegalArgumentException {
super(numberClass, numberFormat, allowEmpty);
}
public MyCustomNumberEditor(Class<? extends Number> numberClass, boolean allowEmpty) throws IllegalArgumentException {
super(numberClass, allowEmpty);
}
@Override
public String getAsText() {
//return super.getAsText();
return "Your desired text";
}
@Override
public void setAsText(String text) throws IllegalArgumentException {
super.setAsText("set your desired text");
}
}
然后将其正常注册到您的控制器中:
@InitBinder public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Float.class,new MyCustomNumberEditor(Float.class, true));
}
这应该完成任务。
以上是 Spring InitBinder:将float字段的空值或空值绑定为0 的全部内容, 来源链接: utcz.com/qa/400299.html