2012-11-11 70 views
1

当我在编辑器中使用DoubleBox编辑双属性(RequestFactoryEditorDriver) 如果我清除框的值,我得到一个空指针异常,这是正常的吗?GWT编辑器框架工作

如果是这样我怎么能验证一个DoubleBox与JSR 303验证?

我的代码看起来是这样的:

@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()需要检查的限制,我有这样的结果:

,如果我把一个价值diferent比数i如果我把一个低于0.0的值,我可以设置约束的EditorDriver与driver.setConstraintViolations(约束);

当我留空白字段我期望列表有一个坏值或约束,但不是空指针异常。

行让我的atention是这个:

Caused by: com.google.gwt.core.client.JavaScriptException: (TypeError) : Cannot read property 'value_0' of null 
at Unknown.$doubleValue(http://localhost:9876/proj/[email protected]:38447) 

似乎DoubleBox不能处理空值。

请帮帮我。谢谢。

回答

2

回答了Google Groups,这里复制的方便:

DoubleBox使用DoubleParserDoubleParser返回null如果该值为空字符串,否则使用NumberFormat,如果无法解析则抛出ParserException。您编辑的对象的属性的类型为double,不java.lang.Double的,所以当该字段为空,getValue()回报null和编辑框架试图拆箱null把它变成你的double财产,因此NullPointerException。带有任何非法值,DoubleParser抛出;在这种情况下,ValueBoxEditor返回最后一个已知值,这解释了为什么它不会抛出该情况。

要求改进:http://code.google.com/p/google-web-toolkit/issues/detail?id=7783