更新在JSF中不起作用

时间:2013-09-24 02:07:26

标签: jsf primefaces

好吧,我有一个问题,我不知道如何解决。我有一个组件(selectOneMenuFormaPagamento),可以更改另一个组件。

I.E:当我选择“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>

0 个答案:

没有答案