Я боролся с этим некоторое время, надеюсь, кто-нибудь сможет мне помочь.
У меня есть этот код, работающий с использованием JSF-2 (взят из решения, предоставленного BalusC в этот вопрос ):
<h:panelGroup id="content" layout="block">
<h:form id="contentform">
<h:panelGroup rendered="#{bean.page == 'include1'}">
<ui:include src="include1.xhtml" />
</h:panelGroup>
<h:panelGroup rendered="#{bean.page == 'include2'}">
<ui:include src="include2.xhtml" />
</h:panelGroup>
<h:panelGroup rendered="#{bean.page == 'include3'}">
<ui:include src="include3.xhtml" />
</h:panelGroup>
</h:form>
</h:panelGroup>
Затем, внутри каждой включенной страницы, у меня есть что-то вроде этого (также работает):
<h:outputText value="Name: "/>
<h:inputText value="#{itemsBean.item.name}" id="name" required="#{not empty param[save.clientId]}"/>
<h:outputText value="Desc: "/>
<h:inputText value="#{itemsBean.item.description}" id="desc" required="#{not empty param[save.clientId]}"/>
<h:commandButton binding="#{save}" label="Save" actionListener="#{itemsBean.save}">
<f:ajax render=":contentForm" execute="name desc"
</h:commandButton>
<h:dataTable value="#{itemsBean.itemsList}" var="item">
<h:column>
<h:outputText value="#{item.name}" />
</h:column>
<h:column>
<h:outputText value="#{item.description}" />
</h:column>
</h:dataTable>
Теперь проблема .
Он начинается, когда я пытаюсь использовать PrimeFaces для включенных страниц, особенно когда я заменяю <h:commandButton...
на:
<p:commandButton binding="#{save}" value="Save" actionListener="#{itemsBean.save}">
<p:ajax update=":contentForm" process="name desc" />
</p:commandButton>
В результате форма отправляется несколько раз, и даже поля ввода с других включенных (не отображаемых) страниц обрабатываются (общий беспорядок).
Я использую:
JSF 2.1.1 Реализация мохарры.
PrimeFaces 3.0-RC2.
Tomcat 7.
(Tomcat и JSF входят в состав NetBeans 7.0.1)
Заранее спасибо.