我有一些表单,我希望能够将一些数字字段留空,但我从Form.bindFromRequest()
. 这似乎是一个常见的要求,但经过数小时的搜索,我找不到任何关于此的文档。不过,我仍然希望我错过了一些明显的东西!
我做了一些挖掘,发现 Play 使用 Spring 的DataBinder
类来进行实际的绑定。该类非常复杂,允许我为我的字段设置自定义@InitBinder
活页夹,如果我使用 Spring,我可以向我的控制器添加一个方法,以使用CustomNumberEditor
. 但是,Form
除了设置允许的字段外,Play Framework 的对象似乎不允许访问 DataBinder。因此,活页夹尝试将一个空字符串转换为一个长字符串,这给出了一个NumberFormatException
:
Failed to convert property value of type 'java.lang.String' to required type 'long'
for property 'unitPriceExVAT';
nested exception is java.lang.NumberFormatException: For input string: ""
那么,还有其他方法可以让活页夹允许空数字字段吗?