2012-11-11 74 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