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

回到顶部