我正在使用 Spring CustomNumberEditor 编辑器绑定我的浮点值,并且我已经试验过,如果值不是数字,有时它可以解析该值并且不返回错误。
- number=10 ...... 那么数字是 10 并且没有错误
- number=10a ...... 那么数字是 10 并且没有错误
- number=10a25 ...... 那么数字是 10 并且没有错误
- number=a ......错误,因为数字无效
因此,编辑器似乎会解析该值,直到可以并省略其余部分。有没有办法配置这个编辑器,所以验证是严格的(所以像 10a 或 10a25 这样的数字会导致错误)或者我必须构建我的自定义实现。我正在寻找类似在 CustomDateEditor/DateFormat 中将 lenient 设置为 false 的东西,因此无法将日期解析为最可能的日期。
我注册编辑器的方式是:
@InitBinder
public void initBinder(WebDataBinder binder){
NumberFormat numberFormat = NumberFormat.getInstance();
numberFormat.setGroupingUsed(false);
binder.registerCustomEditor(Float.class, new CustomNumberEditor(Float.class, numberFormat, true));
}
谢谢。