2013-03-06 38 views
1

我有一些表單,我希望能夠將某些數值字段留空,但從Form.bindFromRequest()中收到「無效值」錯誤。這似乎是一個常見的要求,但我在搜索後幾小時內找不到任何文檔。不過,我仍然希望我錯過了一些明顯的東西!將空值綁定到Play Framework 2(Java)中的數值字段

我做了一些挖掘,發現Play使用Spring的DataBinder類來做實際的綁定。該課程非常複雜,可以讓我爲自己的領域設置自定義活頁夾,如果我使用的是Spring,我可以將@InitBinder方法添加到我的控制器中,以便按照我想要的方式使用CustomNumberEditor設置活頁夾。但是,除了設置允許的字段之外,Play Framework的Form對象似乎不允許訪問DataBinder。因此,粘合劑試圖將空字符串轉換爲長,這給NumberFormatException

Failed to convert property value of type 'java.lang.String' to required type 'long' 
for property 'unitPriceExVAT'; 
nested exception is java.lang.NumberFormatException: For input string: "" 

那麼,有沒有得到粘結劑允許使用空數字字段的一些其他的方式?

回答

1

聲明您的字段爲Long而不是long原始類型,空值將被視爲null

+0

哈哈,太棒了:)。我知道它不會像我製作它那麼複雜!像這樣的案例錯誤有時候幾乎不可能找到。感謝您的幫助 - 它當然完美! – 2013-03-07 07:47:55

相關問題