我有以下代码,使用 jsf2.2,primefaces 3.2。我的要求是根据 updateFlag 更新项目。当我像下面的代码一样使用 c:if (xmlns:c="http://java.sun.com/jsp/jstl/core") 时,不会调用更新命令按钮的操作侦听器。但是如果我使用 < p:panel rendering="#{projectBean.updateFlag}" > 而不是 < c:if > 它可以工作。请帮助我理解它,我想我应该使用 c:if 但它不起作用。
<p:dialog widgetVar="projectUpdate" id="projectUpdatePanel" modal="false" >
<p:panel>
<c:if test="#{projectBean.updateFlag == false}">
<h:outputText value="Project Title" />
<p:inputText disabled="true" value="#{projectBean.selectedProjectDo.projectTitle}" />
<p:commandButton value="Update" disabled="true" />
<p:commandButton value="Cancel" actionListener="#{projectBean.cancelUpdate}" />
</c:if>
<c:if test="#{projectBean.updateFlag == true}">
<h:outputText value="Project Title"/>
<p:inputText value="#{projectBean.selectedProjectDo.projectTitle}" />
<p:commandButton value="Update" actionListener="#{projectBean.updateProject}" />
<p:commandButton value="Cancel" actionListener="#{projectBean.cancelUpdate}" />
</c:if>
</p:panel>
</p:dialog>