簡體   English   中英

表達式錯誤:命名對象:ch.foo.EnitityConverter@f163464

[英]Expression Error: Named Object: ch.foo.EnitityConverter@f163464 not found

根據與下面列出的stackoverflow問題中所述相同的問題,在Managed Bean中擁有Converter的實例之后,我遇到了一個異常,即未找到對象。

Expression Error: Named Object: ch.foo.EnitityConverter@f163464 not found

Stackoverflow問題:

我的xhtml代碼:

<h:selectManyCheckbox value="#{bean.selectedEmployees}">
  <f:converter converterId="#{bean.entityConverter}" />
  <f:selectItems value="#{bean.allEmployees}" var="e" itemLabel="#{e.name}" />    
</h:selectManyCheckbox>

converterId屬性需要轉換器ID(轉換器名稱)。 任何EL表達式值都將被評估為String 您基本上是將轉換器實例的toString()結果傳遞給它,即ch.foo.EnitityConverter@f163464 進而,該轉換器ID不會被識別為任何已注冊的轉換器。 但是..您不想傳遞轉換器ID,而只是引用整個轉換器實例。

每當您要引用整個具體實例時, converterId屬性都是錯誤的屬性。 請改用binding屬性或輸入組件的converter屬性。

因此

<h:selectManyCheckbox value="#{bean.selectedEmployees}">
  <f:converter binding="#{bean.entityConverter}" />
  <f:selectItems value="#{bean.allEmployees}" var="e" itemLabel="#{e.name}" />    
</h:selectManyCheckbox>

要么

<h:selectManyCheckbox value="#{bean.selectedEmployees}" converter="#{bean.entityConverter}">
  <f:selectItems value="#{bean.allEmployees}" var="e" itemLabel="#{e.name}" />    
</h:selectManyCheckbox>

它缺少converter名稱。 您的名字可能類似於entityConverter 默認為calss名稱。 用途如下;

   <f:converter converterId="#{entityConverter}" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM