GWT Editor框架工作

时间:2012-11-11 21:04:05

标签: gwt gwt-editors

当我在编辑器中使用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无法处理空值。

请帮帮我。谢谢。

1 个答案:

答案 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