JSF не обновляет определенные свойства bean-компонента - PullRequest
1 голос
/ 12 февраля 2011

Я работаю в проекте, который использует JSF 2.0 с PrimeFaces 2.2. В настоящее время мы работаем с мастером (компонентом PrimeFaces), который проведет пользователя через процесс регистрации. У нас есть 4 шага в мастере.

Вот проблема: на первом шаге пользователь вводит свои личные данные, и они корректно обновляются в компоненте поддержки. Шаг 2 - это просто набор текста, а шаг 3 представляет другую форму для ввода дополнительной информации.

Но на шаге 3 данные не обновляются в компоненте поддержки, и свойства остаются нулевыми. Я пробовал некоторые обходные пути, но ничего не изменилось ...

Ну, вот соответствующие части кода:

            <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>

Это из вида, а бэк:

        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);
}

Я уже исчерпал все возможные решения ... Так что, если у кого-то есть хотя бы смутное представление, оно действительно. Спасибо!

1 Ответ

0 голосов
/ 12 февраля 2011

Трудно определить основную причину с информацией, предоставленной на данный момент. По крайней мере, одна из возможных причин: один из родительских компонентов полей ввода имеет атрибут rendered, который оценил false в точке, где должны быть собраны входные значения. Убедитесь, что условие rendered оценивает то же самое при отправке формы, как и при отображении формы.

...