我将尝试解释自己:
我正在使用 java、JSF 2.0 和 RichFaces 4.2.1 开发一个 JSF 项目。
当我访问我的 jsf 时,它只加载一个搜索过滤器和一个 commandLink。commandLink 将在我的 backingBean 中启动一个方法来加载将显示在 dataTable 中的数据。
<h:commandLink id="btnRecords">
<f:ajax render="myCompAjax" event="click" listener="#{myBean.loadRecords}" />
<h:graphicImage value="img/ico_new.gif" alt="#{bundle['button.search']}" />
</h:commandLink>
数据表一开始是不可见的,但是一旦您单击 commandLink,backingBean 中的一个标志就会发生变化,并且该表会显示我刚刚加载的数据。
<a4j:outputPanel ajaxRendered="true" id="myCompAjax">
<h:dataTable id="recordsTable" value="#{myBean.records}"
var="item" rendered="#{myBean.flagShowTable}">
<h:column headerClass="thPijama" >
<f:facet name="header">
<table><tr class="thPijama"><td></td></tr></table>
</f:facet>
<h:commandLink action="#{myBean.goNextPage}">
<h:outputText value="Go Next Page" />
<h:inputHidden value="#{item}" />
</h:commandLink>
</h:column>
</h:dataTable>
</a4j:outputPanel>
问题是 dataTable 中的 commandLink 操作根本不起作用。我只想导航到另一个 jsf。事实上,它所做的是隐藏 dataTable 并保持过滤器不变。操作方法仍然无法访问。
当然,如果我在 dataTable 之外设置相同的 commandLink,它会起作用。
我不能使用 Session Scope Beans,因为我工作的人不批准它。
谁能帮我?
感谢您的提示。