我在JSF中創建一個表單來保存一個新的實體bean。我將新實體的屬性綁定到輸入元素,使用value屬性,例如其中支持bean是JSF管理的平均值,newEntity是提交的支持bean,其中包含我的實體的新實例。對於屬性值類型(如數字),輸入字段將填充默認值(例如0)。我希望所有的字段最初都是空白的,並在頁面提交時保存回新的實體實例。我想我可以通過使用Integer類型使所有的屬性爲空,但這些值在數據庫中不能爲空,並且我的用戶界面的要求應該指定業務層的形式似乎不正確。我看着這個錯誤的方式?是否可以在Java Server Faces中創建只寫字段綁定?
3
A
回答
1
我假設如果這些字段不是可以爲空的,那麼它們是必需的。如果您將required="true"
放在該字段上,則在可以分配該值之前驗證應該失敗。這意味着它不會嘗試爲您的屬性分配空值。您可能必須編寫自定義驗證程序才能對某些類型的字段執行此操作。
或者,你可以寫一個轉換器。這個轉換器將不得不將空值轉換爲一些預定的常數,例如-1,你知道這個值是無效的。反之亦然,它必須將-1轉換爲空值才能顯示。然後,在將其發送到業務層之前,必須處理所有無效值。
我已經使用了這兩種方法,但我更喜歡第一種。如果這些字段不是必需的,則它們應該在業務層中可以爲空。
相關問題
- 1. 是否可以在配置文件中創建新字段?
- 2. 使用Java Server Faces將多個輸入字段綁定到支持bean屬性?
- 3. 是否可以在SQL Server 2008 R2中強制執行只讀字段?
- 4. 是否可以將ComboBox ItemsSource綁定到只讀字符串[]?
- 5. 是否有可能在sql server中的臨時表中創建計算字段
- 6. 是否可以使用Java創建dll?
- 7. 是否可以從JavaDoc創建Java類?
- 8. 是否可以綁定Grid.RowProperty。
- 9. 是否可以使用Java在NetBeans中創建可視插件?
- 10. 確定文件是否可以在C++中創建/不是隻讀
- 11. 綁定可見字段(在kendo observable中)是否已更改?
- 12. 是否可以在WinRT中創建IME?
- 13. 是否可以在ModalPopup中創建UINavigationController?
- 14. 是否可以在Alertdialog中創建GridView?
- 15. 是否可以在NetLogo中創建類?
- 16. 是否可以將hiddenfield綁定到dropdownlist?
- 17. 在Eclipse中不存在的Java Server Faces
- 18. 是否可以在Lua中創建代碼段?
- 19. 是否可以在其他綁定中使用綁定?
- 20. 是否可以從ModelMetaData.Properties動態創建輸入字段?
- 21. 是否可以創建一個標籤樣式字段?
- 22. 是否可以創建一個動態計算的字段?
- 23. 是否可以創建SharePoint沙箱字段類型?
- 24. 是否可以在Sql Server 2008中爲特定數量的行創建腳本?
- 25. 是否可以在Erlang中創建一個未綁定的變量?
- 26. 在Gradle中,是否可以根據其他構建配置字段創建布爾構建配置字段?
- 27. 是否可以在xaml中綁定後添加更多字符?
- 28. 是否有可能在c#中創建擴展字段?
- 29. 是否可以在java中爲Runnable接口創建對象
- 30. 是否可以「手動」在Java中創建java.lang.Method實例?
第二種方法對我來說不適用,因爲一般情況下並不總是可以保留代表無效狀態的值。第一種方法的工作原理和前面提到的驗證可以添加到ui中,但是在除數據輸入之外的上下文中,例如當現有對象從數據庫加載出來供參考時,屬性永遠不會爲空,因此看起來字段不爲空數據庫不應該是可空的類型,以便清楚哪些字段可以爲空,哪些不可以。 – Shane 2010-03-01 15:51:17
我的想法是,在編輯新記錄的情況下,我們可以使用這樣一個事實,即我們知道記錄是新的,並且不會在呈現給用戶之前將ui控件同步到實體。也許這可以通過自定義轉換器來完成,這些自定義轉換器會以某種方式收到一個標誌,告訴他們只將數據從控件移動到實體。但是,也許這太複雜了,它應該只使用可空字段並完成它。 – Shane 2010-03-01 15:52:36
採用標誌的自定義轉換器可以工作。主要的缺點是你必須把它放在每個輸入組件上。 – 2010-03-01 17:39:40