我在 JSF2 中使用 Ajax 渲染时遇到问题。我在表格列中有一个命令按钮,可以从表格中删除一项。当我单击按钮时,将执行操作并从数据库中删除该项目,但它不会从表(视图)中删除。当我第二次单击时,将执行 ajax 渲染,然后更新视图。我不知道是什么原因造成的。起初我认为这可能是 JSF 规范问题 790,但我的行动被解雇了。它只是没有被执行的 ajax 渲染。
我正在使用 JSF 2.1.14 + RichFaces 4.2.3
如果您想提供帮助,这是代码的一部分
<a4j:outputPanel id="ajaxOutputPanel">
<rich:panel id="panelOrgaoList">
<div class="results" id="orgaoList">
<h:outputText value="No results."
rendered="#{empty orgaoList.resultList}" />
<h:form id="formTable">
<rich:dataTable id="orgaoTable" var="_orgao"
rowClasses="odd-row, even-row"
value="#{orgaoList.resultList}"
rendered="#{not empty orgaoList.resultList}"
styleClass="stable">
<rich:column>
<f:facet name="header">
<ui:include src="layout/sort.xhtml">
<ui:param name="entityList" value="#{orgaoList}" />
<ui:param name="propertyLabel" value="Id" />
<ui:param name="propertyPath" value="orgao.id" />
</ui:include>
</f:facet>
<h:outputText value="#{_orgao.id}" />
</rich:column>
<rich:column>
<f:facet name="header">
<ui:include src="layout/sort.xhtml">
<ui:param name="entityList" value="#{orgaoList}" />
<ui:param name="propertyLabel" value="Name" />
<ui:param name="propertyPath" value="orgao.name" />
</ui:include>
</f:facet>
<h:outputText value="#{_orgao.name}" />
</rich:column>
<rich:column>
<f:facet name="header">
<ui:include src="layout/sort.xhtml">
<ui:param name="entityList" value="#{orgaoList}" />
<ui:param name="propertyLabel" value="Tel" />
<ui:param name="propertyPath" value="orgao.tel" />
</ui:include>
</f:facet>
<h:outputText value="#{_orgao.tel}" />
</rich:column>
<rich:column styleClass="action">
<s:link view="/#{empty from ? 'Orgao' : from}.xhtml"
propagation="#{empty from ? 'none' : 'default'}"
id="orgaoViewId">
<f:param name="orgaoId" value="#{_orgao.idOrgao}" />
<h:graphicImage value="/img/view2.png" />
</s:link>
#{' '}
<s:link view="/OrgaoEdit.xhtml" propagation="none"
id="orgaoEdit" rendered="#{empty from}">
<h:graphicImage value="/img/edit2.png" />
<f:param name="orgaoId" value="#{_orgao.id}" />
</s:link>
#{' '}
<h:commandButton immediate="true" actionListener="#{orgaoList.remover(_orgao.id)}" image="/img/remove2.png">
<f:ajax render=":ajaxOutputPanel :formTable" />
</h:commandButton>
</rich:column>
</rich:dataTable>
</h:form>
</div>
</rich:panel>
</a4j:outputPanel>
谢谢!