2011-10-13 3 views
0

JSF 2.0, Glassfish 3.2, Primefaces 2.2.1f : ajax가 h : selectOneMenu와 함께 작동하지 않는 이유는 무엇입니까?

페이지가 여러 복합 구성 요소가 있습니다. 이 구성 요소 중 하나에는 h : selectOneMenu가 있습니다. 새 값을 선택하면 f : ajax 메서드를 호출하여 추가하려고합니다.

<h:selectOneMenu id="selectRmDD" styleClass="editSelectRmDD" value="#{scheduleEditSessionBean.selectedRoom}" > 
    <f:selectItems id="roomList" value="#{scheduleEditSessionBean.roomList}"/> 
    <f:ajax listener="#{scheduleEditSessionBean.selectRmDD_processValueChange}" event="valueChange" render="@form" /> 
</h:selectOneMenu> 

나는 시간에서 새 항목을 선택

: selectOneMenu가, 리스너 함수가 호출되는,하지만 selectedRoom을의 값 페이지에서 selectOneMenu 구성 요소처럼 보인다 : 여기

는 시간은 무엇인가 null 나는 디버거에서도 이것을 보았고 심지어 AjaxBehaviorEvent의 컴포넌트에 대한 submitValue도 null이다. 새로운 값이 선택되고 selectedRoom에 대한 정의가 선택되었을 때 호출되는 메서드는 다음과 같습니다.

public void selectRmDD_processValueChange(AjaxBehaviorEvent ae) { 
    String s = getSelectedRoom(); 
    System.out.println("Selected room = "+s); 
    if(s != null)applyRoomBtn_action(); 
} 

private String selectedRoom = "1"; 
public String getSelectedRoom() { return this.selectedRoom; } 
public void setSelectedRoom(String s) { this.selectedRoom = s; } 

값이 채워지지 않는 아이디어가 있습니까?

감사합니다.

답변

1

roomListSelectItemnull이 있거나 양식 제출이 처리 된 시점에서 값이 빈 문자열 인 경우 발생합니다. 다른 이유로는 ConverterString.class 일 때 제대로 작동하지 않지만 String 속성에 바인딩 된 모든 입력에 영향을 주었을 것입니다.

관련 문제