1

私は PrimeFaces 2.2 で JSF 2.0 を使用するプロジェクトに取り組んでいます。現在、ユーザーに登録プロセスを案内するウィザード (PrimeFaces コンポーネント) を使用しています。ウィザードには 4 つのステップがあります。

ここに問題があります。最初のステップで、ユーザーは自分の個人情報を入力し、それがバッキング 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);
}

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

4

1 に答える 1

0

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

于 2011-02-12T20:01:11.037 に答える