2011-02-12 15 views
0

私はPrimeFaces 2.2でJSF 2.0を使用するプロジェクトで作業しています。 現在、我々は登録プロセスを通してユーザを誘導するウィザード(PrimeFacesコンポーネント)を扱っています。ウィザードには4つのステップがあります。JSFが特定のバッキングBeanプロパティを更新しない

問題があります:最初のステップで、ユーザーは個人情報を入力し、バッキングビーンに正しく更新されています。 ステップ2は単なるテキストの集まりであり、ステップ3は追加の情報を入力する別のフォームを提示します。

しかし、ステップ3では、データはバッキングBeanで更新されず、プロパティはnullのままです。

  <p:tab id="three" title="Passo 3" > 
         <p:panel header="Sua saúde financeira"> 
          <p:messages /> 
          <h:panelGrid cellpadding="5" columns="2"> 
           <h:outputText value="Você possui alguma reserva? (Dinheiro não investido, coloque 0,00 se não tiver reserva) " /> 
           <h:panelGrid cellpadding="5" columns="2"> 
            <p:inputText id="reserva" value="#{userWizard.actualMoneyReserve}" size="5" required="true" /> <h:outputText value=" reais." /> 
           </h:panelGrid> 
           <h:outputText value="Qual o valor que você planeja investir por mês? (0,00 se não tiver um planejamento) " /> 
           <h:panelGrid cellpadding="5" columns="2"> 
            <p:inputText id="valormensal" value="#{userWizard.monthlyInvestment}" size="5" required="true" /> <h:outputText value=" reais." /> 
           </h:panelGrid> 
           <h:outputText value="Qual o valor do seu salário atual? " /> 
           <h:panelGrid cellpadding="5" columns="2"> 
            <p:inputText id="salario" value="#{userWizard.salary}" size="5" required="true" /> <h:outputText value=" reais." /> 
           </h:panelGrid> 
           <h:outputText value="Quanto você gasta por mês ? " /> 
           <h:panelGrid cellpadding="5" columns="2"> 
            <p:inputText id="gastomensal" value="#{userWizard.lifeCost}" size="5" required="true" /> <h:outputText value=" reais." /> 
           </h:panelGrid> 
          </h:panelGrid> 
         </p:panel> 
        </p:tab> 

これは、ビューからのものであり、バッキングBean:

 private String actualMoneyReserve; 
    private String monthlyInvestment; 
    private String salary; 
    private String lifeCost; public void save() { 
    //Persist user 

    this.moneyHealth.setActualMoneyReserve(actualMoneyReserve); 
    this.moneyHealth.setLifeCost(lifeCost); 
    this.moneyHealth.setMonthlyInvestment(monthlyInvestment); 
    this.moneyHealth.setSalary(salary); 

    this.user.setMoneyHealth(this.moneyHealth); 
    JOptionPane.showMessageDialog(null, this.actualMoneyReserve); 
    JOptionPane.showMessageDialog(null, this.moneyHealth.getActualMoneyReserve()); 

    GenericDAO<User> gd = new GenericDAO<User>(User.class); 
    gd.persist(user); 
} 

さて、ここでは関係のコードの一部である... は、私はいくつかの回避策を試してみたが、何も変わっていません

私はすでにすべての解決策を使い果たしています...だから、誰かがあまりにも漠然とした考えを持っていれば、それは有効です。 ありがとう!

答えて

0

遠くまで与えられた情報で根本原因を究明するのは難しいです。少なくとも1つの考えられる原因:入力フィールドの親コンポーネントの1つにrendered属性があり、入力値が収集される時点でfalseと評価されました。フォームの表示中にフォーム提出中に、renderedの条件が同じであることを確認してください。

+0

返信いただきありがとうございます。どうすればそれを保証できますか?しかし、他のステップが正常に機能するので、これが問題かどうかはわかりません。 –

関連する問題