2012-05-07 2 views
1

p : ajax를 사용하여 h : selectOneMenu에서 값을 변경하려고합니다. 하지만 항상 null 값을 얻고 있는데, 아래 코드가 무엇인지 잘못 알지 못합니다. h : selectOneMenu 이벤트를 p : ajax로 변경하십시오.

<h:form> 
<h:selectOneMenu id="selectMenu" value="#{userHomeController.gymsSelectType}"> 

<f:selectItem itemLabel="Close to me" itemValue="closest" /> 
<f:selectItem itemLabel="Visited by me" itemValue="visited" /> 
<p:ajax process="selectMenu" listener="#{userHomeController.selectMenuListener}" event="change" update=":home-form:panel" /> 

</h:selectOneMenu> 
</h:form> 

와 빈 클래스는이 viewscoped 클래스입니다

public void selectMenuListener() { 
    System.out.println("-------- >> " + gymsSelectType); // here null coming 
    if (gymsSelectType.equals("a")) { 
     // 
    } else { 
     // 
    } 
} 

입니다. 및 변수 gymsSelectType에 대한 세터 아래는 널 (null)

public void setGymsSelectType(String gymsSelectType) { 
    System.out.println("------------ >> "+gymsSelectType); 
    this.gymsSelectType = gymsSelectType; 
} 
+0

당신이 몇 가지 논리를하거나 문제를 수행 할 시도를 가지고 인쇄된다 데이터 또는 패널 표시/숨기기? 왜냐하면 마지막 하나는 자바 스크립트만으로 가능하기 때문입니다. –

+0

은 선택에 따라 약간의 로직을 수행해야합니다. – Eric

+2

'

'을 사용할 수 있지만 코드는 정상적으로 보입니다. 여기에 기본 Ajax 이벤트 인 모든 값 선택을 호출합니다. 그걸로도'null '을 얻게된다면 문제는 다른 곳에서 발생합니다. facelet에''를 추가하여 유효성 검사 등에 오류가 없는지 확인하십시오. – Fallup

답변

4

이 시도이

<p:ajax process="@this" listener="#{userHomeController.selectMenuListener}" event="change" update=":home-form:panel" /> 
+1

3 년 후이 질문은 내 목숨을 구했다. 감사. –

1

<p:ajax partialSubmit="true" listener="#{userHomeController.selectMenuListener}" event="change" update=":home-form:panel" />

관련 문제