この方法で別のコンポーネントを更新する ap:selectOneMenu コンポーネントがあります。
<h:form id="formaComboInstrumento">
<p:selectOneMenu value="#{CDat.instrumentoSeleccionado}">
<f:selectItem itemValue="" itemLabel="--Selecciona un examen--"/>
<f:selectItems value="#{CDat.mapaInstrumentos.entrySet()}" var="var" itemValue="#{var.key}" itemLabel="#{var.value}" />
<p:ajax listener="#{CDat.cambioComboInstrumento}" update=":subtipo"/>
</p:selectOneMenu>
</h:form>
<p:selectOneMenu id="subtipo" value="#{CDat.mapaInstrumentosSubtipo}" >
<f:selectItem itemValue="" itemLabel="--Selecciona un examen--"/>
<f:selectItems value="#{CDat.mapaInstrumentosSubtipo.entrySet()}" var="var" itemValue="#{var.key}" itemLabel="#{var.value}" />
</p:selectOneMenu>
それは完全に機能します。次に、少し下に、送信/処理用の ap:commandButton を備えた別のフォームがあります。
<h:form id="formaProcesarAplicacion">
<p:growl id="growl3" sticky="false" life="3000"/>
<p:commandButton value="Procesar aplicacion" action="#{CDat.procesarAplicacion}" update="growl3"/>
</h:form>
残念ながら、この最後のフォームは Bean に決して触れません (最初のフォームを削除すると、メソッド/アクション procesarAplicacion が処理を行い、値を表示するためです)、データ処理を行うことが不可能になります。
アイデア、提案はありますか?
私はprimefaces 3.5、mojarra 2.1.22、tomcat 7、およびEclipse Junoを使用しています。