2014-03-12 29 views
0

我有一個selectOneMenu加載其他需求。請參閱:值沒有將selectOneMenu設置爲ManagedBean

<h:outputLabel value="Tabela: *" /> 
       <p:selectOneMenu id="selectOneMenuTabela" 
        converter="entityConverter" 
        value="#{orcamentoMB.tabelaSelecionada}" effect="fade" 
        required="true" requiredMessage="A Tabela é obrigatória"> 
        <f:selectItem itemLabel="Selecione uma Tabela" itemValue="" /> 
        <f:selectItems value="#{orcamentoMB.tabelas}" var="tabela" 
         itemLabel="#{tabela.nome}" itemValue="#{tabela}" /> 
        <p:ajax event="change" update="selectOneMenuProcedimento" /> 
       </p:selectOneMenu> 

       <h:outputText value="Procedimento: *" /> 
       <p:selectOneMenu id="selectOneMenuProcedimento" 
        disabled="#{orcamentoMB.tabelaSelecionada == null}" 
        converter="entityConverter" filter="true" 
        filterMatchMode="contains" 
        value="#{orcamentoMB.itemTabelaProcedimentoSelecionado}" 
        effect="fade" required="true" 
        requiredMessage="O procedimento é obrigatório"> 
        <f:selectItem itemLabel="Selecione um Procedimento" itemValue="" /> 
        <f:selectItems value="#{orcamentoMB.tabelaSelecionada.itens}" 
         var="item" itemLabel="#{item.procedimento.nome}" 
         itemValue="#{item}" /> 
        <p:ajax event="change" 
         update="localAplicacao, selectOneMenuDente,selectOneMenuFace" /> 
       </p:selectOneMenu> 

       <h:outputText value="Local Aplicação: *" /> 
       <h:outputText id="localAplicacao" 
        value="#{orcamentoMB.itemTabelaProcedimentoSelecionado.procedimento.localAplicacao.descricao}" /> 

       <h:outputText value="Dente: *" /> 
       <p:selectOneMenu id="selectOneMenuDente" converter="entityConverter" 
        filter="true" filterMatchMode="contains" 
        disabled="#{orcamentoMB.itemTabelaProcedimentoSelecionado.procedimento == null || orcamentoMB.itemTabelaProcedimentoSelecionado.procedimento.dentesAsList.size() == 0}" 
        value="#{orcamentoMB.denteSelecionado}" effect="fade"> 
        <f:selectItem itemLabel="Selecione um Dente" itemValue="" /> 
        <f:selectItems 
         value="#{orcamentoMB.itemTabelaProcedimentoSelecionado.procedimento.dentesAsList}" 
         var="dente" itemLabel="#{dente.descricao}" itemValue="#{dente}" /> 
       </p:selectOneMenu> 

       <h:outputText value="Face: *" /> 
       <p:selectOneMenu id="selectOneMenuFace" converter="entityConverter" 
        disabled="#{orcamentoMB.itemTabelaProcedimentoSelecionado.procedimento.facesAplicacaoAsList.size() == 0 || orcamentoMB.itemTabelaProcedimentoSelecionado == null}" 
        value="#{orcamentoMB.faceSelecionada}" effect="fade"> 
        <f:selectItem itemLabel="Selecione uma Face" itemValue="" /> 
        <f:selectItems 
         value="#{orcamentoMB.itemOrcamento.itemTabelaProcedimento.procedimento.facesAplicacaoAsList}" 
         var="face" itemLabel="#{face.descricao}" itemValue="#{face}" /> 
       </p:selectOneMenu> 

的「selectOneMenuTabela」和「selectOneMenuProcedimento」工作正常,該值的設置好的在ManagedBean,但其他人沒有。

當我嘗試波紋管執行此的commandButton:

<p:commandButton value="Incluir" icon="ui-icon-plus" process="@this" 
        disabled="#{orcamentoMB.bean.situacao.codigo != 'AGUARDANDO_ACEITACAO'}" 
        update=":formManterOrcamento:tabViewManterOrcamento:tabProcedimentos,:formManterOrcamento:panelTotais" 
        actionListener="#{orcamentoMB.addItemOrcamento}" /> 

內「denteSelecionado」的值爲null,而裏面的「selectOneMenuFace」的值不會被加載。

回答

1

由於您在前兩個selectOneMenu上有p:ajax event="change",因此他們正在提交,這就是爲什麼您獲得這些價值。要點擊commandButton來處理它們,請將這些組件ID與@this一起處理,如process="@this,selectOneMenuFace,selectOneMenuDente,.."

如果組件是disabledreadOnly那麼它們將不會被處理。

希望這會有幫助

+1

是的,這解決了我的問題。謝謝。 –