Jsf 在数据表中的p:ajax中,Bean解析为null
我遇到了一个奇怪的情况,目标不可访问标识符“bean”被解析为null 我有一个包含datatable定义的XHTML主网页,如下所示:Jsf 在数据表中的p:ajax中,Bean解析为null,jsf,jsf-2,glassfish-3,Jsf,Jsf 2,Glassfish 3,我遇到了一个奇怪的情况,目标不可访问标识符“bean”被解析为null 我有一个包含datatable定义的XHTML主网页,如下所示: <c:set var="bean" value="#{mainSearchBean}" /> <h:form id="form"> <p:datatable selectionMode="#{bean.selectionMode}" rendered="#{bean.isTableRendered}" ...>
<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>
#{bean}
我有一个控制器,它生成我的mainSearchBean,作为会话处理。一旦调用bean mainSearchBean,就会调用producer方法(@products)并正常创建我的bean。事实上,如果我在页面中打印bean,如上面p:ajax组件之前的代码所示,我会得到与producer方法中创建的bean相同的签名
由于
侦听器属性中的bean,生成了目标不可访问错误
我在Glassfish 3.1和JSF 2.1.26上出现了错误。除了在标记大小写敏感度方面有点马虎之外,您还将变量bean设置为字符串文字“mainSearchBean”。您可能希望使用EL表达式(#{…})
它实际上是一个EL表达式。我正在编辑答案。这是个错误。请提供您实际遇到问题的代码。由于标记名p:datatable无效,xhtml将引发其他错误。提供一个。这包括堆栈跟踪和环境。从您提供的代码来看,问题是不可再现的。正确。很抱歉,我试着给出一个简单的例子,因为我不在办公室,可能有真正的错误代码。我会尽快编辑这个问题。
<c:set var="bean" value="#{mainSearchBean}" />