2011-02-12 8 views
0

PrimeFaces 2.2에서 JSF 2.0을 사용하는 프로젝트에서 일하고 있습니다. 현재 등록 프로세스를 안내하는 마법사 (PrimeFaces 구성 요소)가 있습니다. 마법사에는 4 단계가 있습니다.JSF가 특정 백킹 빈 속성을 업데이트하지 않습니다.

다음과 같은 문제가 있습니다. 첫 번째 단계에서 사용자는 자신의 개인 정보를 입력하고 백킹 빈에서 올바르게 업데이트됩니다. 2 단계는 단지 텍스트 모음이며 3 단계는 추가 정보를 입력하는 또 다른 양식을 제공합니다.

그러나 3 단계에서 데이터는 백업 빈에서 업데이트되지 않으며 속성은 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> 

이보기에서, 그리고 백업 빈 :

 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

멀리 제공된 정보로 근본 원인을 알아내는 것은 어렵습니다. 적어도 하나의 가능한 원인 : 입력 필드의 상위 구성 요소 중 하나에 rendered 속성이 있습니다.이 값은 입력 값을 수집 할 시점에서 false을 평가합니다. 양식을 표시하는 동안 양식 제출 도중 rendered 조건이 동일하게 평가되는지 확인하십시오.

+0

답장을 보내 주셔서 감사합니다. 어떻게 보장 할 수 있습니까? 그러나 다른 단계가 정상적으로 작동하므로 이것이 문제가되는지 확실하지 않습니다. –