Jam*_*ter 6 spring bind spring-mvc
我只是想知道是否可以告诉@InitBinder表单中的空浮点值将转换为0.
我知道float是一种原始数据类型,但我仍然希望将null或空值转换为0.
如果可能的话,我怎样才能做到这一点?
否则,我只是使用String而不是float来解决方法
是的,你总是可以这样做。Spring 有一个CustomNumberEditor可自定义的属性编辑器,适用于任何 Number 子类,如 Integer、Long、Float、Double。它默认由 BeanWrapperImpl 注册,但是可以通过将其自定义实例注册为自定义来覆盖editor.这意味着你可以扩展这样的类
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");
}
}
Run Code Online (Sandbox Code Playgroud)
然后在你的控制器中正常注册它:
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerCustomEditor(Float.class,new MyCustomNumberEditor(Float.class, true));
}
Run Code Online (Sandbox Code Playgroud)
这应该可以完成任务。
| 归档时间: |
|
| 查看次数: |
5396 次 |
| 最近记录: |