Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 表达式错误:命名对象:ch.foo。EnitityConverter@f163464找不到_Jsf_Jsf 2_Converter - Fatal编程技术网

Jsf 表达式错误:命名对象:ch.foo。EnitityConverter@f163464找不到

Jsf 表达式错误:命名对象:ch.foo。EnitityConverter@f163464找不到,jsf,jsf-2,converter,Jsf,Jsf 2,Converter,根据下面列出的问题中描述的相同问题,在托管Bean中有一个转换器的实例之后,我得到一个异常,即找不到该对象 Expression Error: Named Object: ch.foo.EnitityConverter@f163464 not found 问题: 我的xhtml代码: <h:selectManyCheckbox value="#{bean.selectedEmployees}"> <f:converter converterId="#{bean.e

根据下面列出的问题中描述的相同问题,在托管Bean中有一个
转换器的实例之后,我得到一个异常,即找不到该对象

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

我的xhtml代码:

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

缺少转换器的名称。您的名字可能类似于
entityConverter
。默认值为calss name。使用方法如下

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

converterId
属性需要转换器ID(转换器名称)。任何EL表达式值都将作为
字符串计算。您基本上是将转换器实例的
toString()
结果传递给它,即
ch.foo。EnitityConverter@f163464
。此转换器ID反过来不会被识别为任何已注册的转换器。然而您不想传递转换器ID,而只是引用整个转换器实例


每当您想要引用整个具体实例时,
converterId
属性就是错误的属性。使用
绑定
属性,或者输入组件的
转换器
属性

所以,所以

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



我不使用
faces config.xml
来命名转换器。我正在引用托管bean中的转换器实例。请参阅链接的问题。不过,谢谢你的回答即使您使用注释,转换器也有一个名称。您将所有转换器本身作为其ID传递到此处。我认为这是不对的。
<h:selectManyCheckbox value="#{bean.selectedEmployees}" converter="#{bean.entityConverter}">
  <f:selectItems value="#{bean.allEmployees}" var="e" itemLabel="#{e.name}" />    
</h:selectManyCheckbox>