【问题标题】:Binding empty values to numerical fields in Play Framework 2 (Java)在 Play Framework 2 (Java) 中将空值绑定到数值字段
【发布时间】: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


    【解决方案1】:

    将您的字段声明为Long 而不是long 原始类型,空值将被视为null

    【讨论】:

    • 哈哈,太棒了:)。我知道它不可能像我做的那么复杂!有时,您自己几乎不可能找到类似的案例错误。感谢您的帮助——它当然完美无缺!
    猜你喜欢
    • 1970-01-01
    • 2015-04-11
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 2012-09-02
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多