2011-07-20 43 views
0

我有一個變量(名爲myChoice),我無法在程序中保存它的值,這是代碼。無法在程序中保存變量的值

JSF:

<h:form id="main"> 
     <p:growl id="msgs" /> 
     <h:selectOneMenu value="#{Bean.myChoice}"> 
     <f:selectItems value="#{Bean.getMyListKPI()}" /> 
     <p:ajax event="valueChange" update="f1,f2,f3" 
      listener="#{Bean.selectChangeHandler}"></p:ajax> 
     </h:selectOneMenu> 
    </h:form> 

我的JAVA代碼:

public List<SelectItem> getMyListKPI() { 
    FindKpi fkpi =new FindKpi(); 
    if (MyListKPI == null) { 
     MyListKPI = new ArrayList<SelectItem>(); 
      for (String val : fkpi.FindListKpi(iduser)) { 
       MyListKPI.add(new SelectItem(val)); 
      } 
      } 
    return MyListKPI; 
} 

public void selectChangeHandler() { //mychoice has the right value 

    form1Visible = false; 
    form2Visible = false; 
    form3Visible = false; 

    if (this.myChoice.equals("Number Of Issues in Status")) { 
     this.setMyChoiceInter(myChoice); 
     form1Visible = true; 

    } else if (this.myChoice.equals("Response Time")) { 
     form2Visible = true; 
    } else if (this.myChoice.equals("Environment Availibility")) { 
     form3Visible = true; 
    } 
} 


public String query() 
{ 
    if (this.myChoice.equals("Number Of Issues in Status")) { //myChoice always NULL 

    //.... 

    } 
} 

更新

我宣佈myChoice靜態和它的工作! :)

+2

你的bean的範圍是什麼? –

+0

有一個'myChoice'的setter,對吧? – Thomas

+0

是的,有getter和setters,範圍是請求 – rym

回答

0

只需使管理bean Bean(與myChoice屬性)請求範圍。