当我在编辑器中使用DoubleBox来编辑double属性(RequestFactoryEditorDriver)时,它是正常的 如果我清除框的值,我得到一个空指针异常?
如果是这样,我如何使用JSR 303验证来验证DoubleBox?
我的代码看起来像这样:
@DecimalMin(value="0.0", message="decimalMin:0.0", groups = {ImpuestoGroup.class, ImpuestoIepsGroup.class})
public double getTasaImpuesto();
<g:DoubleBox ui:field="tasaImpuesto"></g:DoubleBox>
@UiField DoubleBox tasaImpuesto;
当我调用driver.flush()时需要检查约束我有这个结果:
如果我输入的值与数字不同,我会在列表中得到错误值 如果我设置低于0.0的值,我可以使用driver.setConstraintViolations(约束)设置约束到EditorDriver;
当我将该字段留空时,我希望List具有错误值或约束但不是空指针异常。
我得到的注意就是这一行:
Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'value_0' of null
at Unknown.$doubleValue(http://localhost:9876/proj/C6E66C9FC3DCB1FC08DFFFC07FE049E0.cache.js@21:38447)
似乎DoubleBox无法处理空值。
请帮帮我。谢谢。
答案 0 :(得分:2)
在Google Groups上回答,为方便起见,在此复制:
DoubleBox
使用DoubleParser
。如果值为空字符串,则DoubleParser
返回null
,否则使用NumberFormat
,如果无法解析则抛出ParserException
。您编辑的对象的属性类型为double
,而不是java.lang.Double
,因此当该字段为空时,getValue()
会返回null
,并且编辑器框架会尝试将{{1将它放入null
属性,即double
。有任何非法价值,NullPointerException
抛出;在这种情况下,DoubleParser
返回最后一个已知值,这解释了为什么它不会抛出这种情况。
要求增强功能:http://code.google.com/p/google-web-toolkit/issues/detail?id=7783