JSF没有更新某些支持bean属性

JSF没有更新某些支持bean属性,jsf,backing-beans,Jsf,Backing Beans,我在一个使用JSF2.0和PrimeFaces2.2的项目中工作。 目前,我们正在使用一个向导(PrimeFaces组件),该向导将引导用户完成注册过程。向导中有4个步骤 问题是:在第一步中,用户输入他/她的个人详细信息,并在支持bean中正确更新。 第2步只是一堆文本,第3步提供了另一个表单来输入额外的信息 但是在步骤3中,数据不会在支持bean中更新,并且属性保持为null。 我尝试了一些解决办法,但没有任何改变 下面是代码的相关部分: <p:tab id="t

我在一个使用JSF2.0和PrimeFaces2.2的项目中工作。 目前,我们正在使用一个向导(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);
}
私有字符串actualMoneyReserve;
私人串月投资;
私人串薪;
私人字符串生命成本;公共作废保存(){
//持久用户
this.moneyHealth.setActualMoneyReserve(actualMoneyReserve);
this.moneyHealth.setLifeCost(lifeCost);
这个.moneyHealth.setMonthlyInvestment(monthlyInvestment);
这是moneyHealth.setSalary(工资);
this.user.setMoneyHealth(this.moneyHealth);
JOptionPane.showMessageDialog(null,this.actualMoneyReserve);
JOptionPane.showMessageDialog(null,this.moneyHealth.getActualMoneyReserve());
GenericDAO gd=新的GenericDAO(User.class);
gd.persist(用户);
}
我已经用尽了所有可能的解决办法。。。所以,如果有人至少有一个模糊的想法,这是有效的。
谢谢

根据所提供的信息很难确定根本原因。至少有一个可能的原因:输入字段的父组件之一有一个
呈现的属性,该属性在要收集输入值的点处计算为
false
。确保提交表单期间呈现的
条件的计算结果与表单显示期间相同。

感谢您的回复。我如何确保这一点?但是,我不确定这是否是问题所在,因为另一个步骤工作正常。