うーん、どうしたらいいのかわからない問題があります。別のコンポーネントを変更するコンポーネント (selectOneMenuFormaPagamento) があります。
IE: 「selectOneMenuFormaPagamento」を選択して commandButton をクリックすると、他のコンポーネント (別のダイアログ内) が更新されますが、更新されず、理由がわかりません。
私のJSFページを見てください:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:pe="http://primefaces.org/ui/extensions">
<h:head>
</h:head>
<h:body>
<ui:composition>
<h:form id="formPagamento" enctype="multipart/form-data">
<p:dialog id="dialogPagamento" width="500px" height="90px"
header="Pagamento" widgetVar="dialogPagamento" modal="true"
showEffect="fade" hideEffect="fade">
<p:panelGrid columns="2" styleClass="semBorda">
<h:outputText value="Forma de Pagamento:" />
<p:selectOneMenu id="selectOneMenuFormaPagamento"
converter="entityConverter"
value="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento}"
effect="fade" required="true"
requiredMessage="A forma de pagamento é obrigatória">
<f:selectItem itemLabel="Selecione uma Forma de Pagamento"
itemValue="" />
<f:selectItems value="#{orcamentoMB.formasPagamento}"
var="formaPagamento" itemLabel="#{formaPagamento.descricao}"
itemValue="#{formaPagamento}" />
</p:selectOneMenu>
<p:commandButton icon="ui-icon-play" value="Continuar"
id="continuarPagamento" process="selectOneMenuFormaPagamento"
update=":formPagamento:inputTextNumeroCartao, :formPagamento:inputNumberQuantidadeParcelas, :formPagamento:selectOneMenuBandeira,
:formPagamento:valorTeste"
oncomplete="if (!args.validationFailed){ dialogPagamento.hide(); dialogPagamentoFinal.show(); }" />
</p:panelGrid>
</p:dialog>
<p:dialog id="dialogPagamentoFinal" width="500px" height="200px"
header="Pagamento" widgetVar="dialogPagamentoFinal" modal="true"
showEffect="fade" hideEffect="fade">
<p:panelGrid columns="2" styleClass="semBorda">
<h:outputText value="Valor teste" />
<p:inputText
value="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo}"
id="valorTeste" />
<h:outputText value="Valor: *" />
<pe:inputNumber
value="#{orcamentoMB.historicoPagamentoOrcamento.valor}"
symbol="R$ " required="true"
requiredMessage="O valor é obrigatório" />
<h:outputText value="Número Cartão: " />
<p:inputText id="inputTextNumeroCartao"
required="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo == 'CREDITO' or
orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo == 'DEBITO'}"
requiredMessage="O número do cartão é obrigatório"
value="#{orcamentoMB.historicoPagamentoOrcamento.numeroCartao}"
disabled="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo != 'CREDITO' and orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo != 'DEBITO'}" />
<h:outputText value="Quantidade Parcelas: " />
<pe:inputNumber id="inputNumberQuantidadeParcelas"
decimalPlaces="0"
required="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo == 'CREDITO'}"
requiredMessage="A quantidade de parcelas é obrigatória"
value="#{orcamentoMB.historicoPagamentoOrcamento.quantidadeParcelas}"
disabled="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo != 'CREDITO'}" />
<h:outputText value="Bandeira do Cartão: " />
<p:selectOneMenu id="selectOneMenuBandeira"
required="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo == 'CREDITO' or
orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo == 'DEBITO'}"
requiredMessage="A Bandeira do Cartão é obrigatória"
disabled="#{orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo != 'CREDITO' and
orcamentoMB.historicoPagamentoOrcamento.formaPagamento.codigo != 'DEBITO'}"
converter="entityConverter"
value="#{orcamentoMB.historicoPagamentoOrcamento.bandeiraCartao}"
effect="fade">
<f:selectItem itemLabel="Selecione uma Bandeira" itemValue="" />
<f:selectItems value="#{orcamentoMB.bandeiras}" var="bandeira"
itemLabel="#{bandeira.descricao}" itemValue="#{bandeira}" />
</p:selectOneMenu>
<p:commandButton icon="ui-icon-disk" value="Finalizar"
actionListener="#{orcamentoMB.finalizarPagamento}"
update=":formOrcamentos:dataTableOrcamentos"
oncomplete="if (!args.validationFailed) { dialogPagamentoFinal.hide(); }" />
</p:panelGrid>
</p:dialog>
</h:form>
</ui:composition>
</h:body>
</html>