2

@ViewScopedBeanに問題があります。メソッドを起動すると、Beanは。を発生させNullPointerExceptionます。しかし、同じことが Beansでも機能@RequestScopedします。@SessionScopedこれが私のコードです:

control.xhtml

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

Bean ControlBean:

@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 Beanを使用すると、インターフェースからの値が得られます。

4

1 に答える 1

1

皆さんの助けを借りて解決しました。@ViewScopedを使用するには、Bean(jsf2.1内)にCDI Beanではなく、@ManagedBeanの注釈を付ける必要があります。だから、それを行うための最良の方法は:

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

    }

ありがとう :)

于 2013-06-23T23:41:00.953 に答える