2011-04-28 5 views
0

JSF의 라디오 버튼 목록과 어떻게 반응하는지, 온라인 도움말을 많이 찾지 못했습니다. 다음은 내 라디오 버튼리스트의 선언과 라디오의 값이 변경 될 경우에 호출되어야하는 방법입니다 : 내가 다른 값을 선택하면ValueChangeListener 메서드가 내 h : selectOneRadio에서 호출되지 않았습니다.

<h:selectOneRadio value="#{AddExpense.selectedTypeExp}" layout="pageDirection" 
           valueChangeListener="#{AddExpense.changed}"> 
    <f:selectItems value="#{AddExpense.typeExpList}"/> 
    <a:support event="onclick" action="#{AddExpense.typeExpChanged}" immediate="true"/> 
</h:selectOneRadio> 

는 만 typeExpChanged이라고는하지만, AddExpense.changed 방법은 호출되지 않았습니다.

public void changed(ValueChangeEvent event){ 
     System.out.println("In changed event method: "+event.getNewValue()); 
} 

은 내가 <a:support>에 뭔가를 변경해야 : 나는 ChangeListener로부터 반응해야하는지 확실하지 ... 다음 호출 할 필요가 내 아주 간단한 테스트 방법이다 여기에 뭔가 혼란 것 같아?

이벤트와 valueChangeListener가 모두있는 이유는 선택 항목을 변경하는 것에 반응하는 것을 테스트하려고했기 때문입니다. 선택한 값을 알려주는 매개 변수로 호출 할 메서드가 필요하므로 다른 것을로드 할 수 있습니다. 미리 감사드립니다.

답변

1

valueChangeListener은 클라이언트 측 이벤트 수신기가 아닙니다. 그것은 서버 측 이벤트 리스너입니다. HTML/JS/Ajax 코드를 생성하지 않으며 서버에 양식을 제출할 때 JSF 자체에 의해 트리거되며 제출 된 값은 초기 모델 값과 다릅니다.

Ajax4jsf <a4j:support>을 계속 사용하면 특정 기능 요구 사항에 완벽하게 맞습니다.

+0

그래, 그것은 onclick만을 사용하여 작동합니다. 그러나 이제는 typeExpChanged 메서드 (클릭에 반응하는)에서 선택된 항목을 포함하는 변수를 인쇄 할 때 다른 값을 클릭해도 값이 여전히 0 (기본값)으로 표시됩니다. – AndaP

관련 문제