2011-07-20 42 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属性)请求范围。