【发布时间】:2013-03-07 06:09:31
【问题描述】:
我希望能够将一些数字字段留空,但我从Form.bindFromRequest() 收到“无效值”错误。这似乎是一个常见的要求,但经过数小时的搜索,我找不到任何关于此的文档。不过,我仍然希望我错过了一些明显的东西!
我做了一些挖掘,发现 Play 使用 Spring 的 DataBinder 类来进行实际的绑定。该类非常复杂,允许我为我的字段设置自定义活页夹,如果我使用 Spring,我可以向我的控制器添加一个 @InitBinder 方法,以使用CustomNumberEditor 完全按照我想要的方式设置活页夹.但是,除了设置允许的字段外,Play Framework 的Form 对象似乎不允许访问 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: ""
那么,还有其他方法可以让活页夹允许空数字字段吗?
【问题讨论】:
标签: java forms playframework-2.0 databinder