我有一个奇怪的目标无法访问标识符' bean'已解决为空。
我有一个XHTML主网页,其中包含如下数据的定义:
<c:set var="bean" value="#{mainSearchBean}" />
<h:form id="form">
<p:datatable selectionMode="#{bean.selectionMode}" rendered="#{bean.isTableRendered}" ...>
#{bean}
<p:ajax event="onSelect" listener="#{bean.onSelect}" />
<ui:include src="columns.xhtml">
<ui:param name="bean" value="#{bean}" />
</ui:include>
</p:datatable>
</form>
我有一个控制器,可以将我的 mainSearchBean 生成为SessionScoped。一旦调用bean mainSearchBean,就会调用producer方法(@Produces)并正常创建我的bean。事实上,如果我在页面中打印bean,如上面p:ajax组件之前的代码中所示,我获得与在producer方法中创建的bean相同的签名。
由于<p:ajax>
侦听器属性中的bean,会生成Target Unreachable错误。
我在使用JSF 2.1.26的Glassfish 3.1上出错。
答案 0 :(得分:1)
除了对标签区分大小写有点草率外,您还可以将变量bean设置为字符串文字&#34; mainSearchBean&#34;。您可能想要使用EL表达式(#{...})
<c:set var="bean" value="#{mainSearchBean}" />