1

当我在编辑器中使用 DoubleBox 来编辑双属性 (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(constraints) 将约束设置为 EditorDriver;

当我将字段留空时,我期望一个具有错误值或约束但不是空指针异常的列表。

我引起我注意的是这一行:

 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 无法处理空值。

请帮我。谢谢你。

4

1 回答 1

2

在Google Groups上回答,为方便起见,在此处复制:

DoubleBox使用DoubleParser. 如果值是空字符串则DoubleParser返回,否则使用 a ,如果无法解析则抛出 a 。您编辑的对象的属性类型为,而不是,因此当该字段为空时,返回,并且编辑器框架尝试将 拆箱以将其放入您的属性中,因此. 带有任何非法值,抛出;在这种情况下,返回最后一个已知值,这就解释了为什么它不会在这种情况下抛出。nullNumberFormatParserExceptiondoublejava.lang.DoublegetValue()nullnulldoubleNullPointerExceptionDoubleParserValueBoxEditor

增强请求:http ://code.google.com/p/google-web-toolkit/issues/detail?id=7783

于 2012-11-12T09:16:00.123 回答