亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

“空轉換器”的轉換錯誤設置值-為什么我需要JSF中的轉換器?

“空轉換器”的轉換錯誤設置值-為什么我需要JSF中的轉換器?

“空轉換器”的轉換錯誤設置值-為什么我需要JSF中的轉換器?我在理解如何在JSF 2中有效地使用POJO/Entity時遇到了問題。例如,我試圖選擇一個Warehouse實體通過以下下拉列表:<h:selectOneMenu value="#{bean.selectedWarehouse}">     <f:selectItem itemLabel="Choose one .." itemValue="#{null}" />     <f:selectItems value="#{bean.availableWarehouses}" /></h:selectOneMenu>以及下面的托管bean:@Named@ViewScopedpublic class Bean {     private Warehouse selectedWarehouse;     private List<SelectItem> availableWarehouses;     // ...     @PostConstruct     public void init() {         // ...         availableWarehouses = new ArrayList<>();         for (Warehouse warehouse : warehouseService.listAll()) {             availableWarehouses.add(new SelectItem(warehouse, warehouse.getName()));         }     }     // ...}注意我用了整個Warehouse的價值SelectItem.當我提交表單時,以下Faces消息失?。恨D換錯誤設置值‘com.example.Warehouse@caebabe’空轉換器‘。我希望JSF能設置正確的Warehouse對象打包到托管bean中。SelectItem..將我的實體包裝在SelectItem應該跳過創建Converter為了我的實體。我真的需要用Converter每當我想使用<h:selectOneMenu>?對于JSF來說,只需從可用項列表中提取所選的項就可以了。如果我真的要用轉換器,實際的方法是什么?到目前為止,我想到的是:創建一個Converter實體的實施。覆蓋getAsString()..我想我不需要這個,因為SelectItem將用于顯示下拉選項標簽。覆蓋getAsObject()..我認為這將用于返回正確的SelectItem或實體,取決于在托管bean中定義的選定字段的類型。這個getAsObject()把我弄糊涂了。做這件事的有效方法是什么?具有字符串值時,如何獲得關聯的實體對象?應該根據字符串值從服務對象查詢實體對象并返回該實體嗎?或者也許我可以訪問組成選擇項的實體的列表,循環它們以找到正確的實體,并返回該實體?這樣做的正常方式是什么?
查看完整描述

2 回答

  • 2 回答
  • 0 關注
  • 629 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號