2013-03-08 3 views
2

@ViewScoped Bean에 문제가 있습니다. 메소드를 실행하면 빈은 NullPointerException을 발생시킵니다. 동일하지만 @RequestScoped@SessionScoped Beans와 작동합니다. @Named @ViewScoped를 사용하면 제출 된 값이 null입니다.

@Named(value = "controlBean") 
    @ViewScoped 
    public class ControlBean extends Controller implements Serializable { 
    private String numeroCompte; 


     public String rechercheCompte() { 

       if (numeroCompte!=null) { 
        System.out.println("Enter rechercheCompte "+numeroCompte); 


       } else if (numeroCompte==null){ 
         System.out.println("Enter rechercheCompte ; numcompte is null "); 
       } 

       return null; 
      } 

    } 

변수 numeroCompte의 값은 항상 null의

있지만 RequestScoped 및 SessionScoped 콩, 우리는이 :

<h:form id="form1" > 
       <p:growl id="messages" /> 
     <h:outputText value="Numero de Compte :" /> 
    <p:inputText id="txtCompte" value="#{controlBean.numeroCompte}" /> &nbsp; 
<p:commandButton value="RECHERCHER" ajax="false" action="#{controlBean.rechercheCompte}"/> 

       </h:form> 

빈 ControlBean

control.xhtml : 다음은 내 코드입니다 인터페이스로부터의 값

+2

CDI와 viewScope 함께 작동하지 않습니다. 뷰 범위에 대해 JSF 관리 Bean을 사용하십시오. '@ Named'를'@ ManagedBean'으로 변경하십시오. –

+0

모든 것을 CDI로하려면 ViewScoped 대신 @ConversationScoped를 사용하십시오. – 757071

+0

답장을 보내 주셔서 감사합니다. 시도해 보겠습니다. – bouikstefan

답변

1

여러분 모두의 도움으로 해결되었습니다. @ViewScoped를 사용하려면 bean (jsf2.1에 있음)은 CDI Bean이 아니라 @ManagedBean annoted이어야합니다. 그래서 그것을 덜렁이하는 가장 좋은 방법은 다음과 같습니다

@ManagedBean(value = "controlBean") 
    @ViewScoped 
    public class ControlBean extends Controller implements Serializable { 
    private String numeroCompte; 


     public String rechercheCompte() { 

       if (numeroCompte!=null) { 
        System.out.println("Enter rechercheCompte "+numeroCompte); 


       } else if (numeroCompte==null){ 
         System.out.println("Enter rechercheCompte ; numcompte is null "); 
       } 

       return null; 
      } 

    } 

감사합니다 :)

+0

적어도, 그것에 해결책을 넣어 라! –

+0

완료 ... 감사합니다. @Alex – bouikstefan

관련 문제