2011-11-17 2 views
2

JSF 폼을 재설정하고 싶습니다. 내가 뒷받침 빈의 모든 속성을 재설정 Action 메서드를 구현했습니다.JSF : Action 메서드에서 null을 반환하면 콤보 상자가 아닌 입력 텍스트 만 새로 고칩니다.

String이 같은 페이지로 다시 전달되면 모든 양식 항목이 재설정됩니다. 텍스트 상자와 콤보 상자를 입력하십시오.

그러나 내가 null을 반환 할 때 입력 텍스트 상자 만 재설정되며 콤보 상자는 다시 설정되지 않습니다.

이 동작을 이해하지 못합니다. 두 방법 모두 같은 방법을 호출하며 둘 다 같은 페이지로 전달합니다.

+1

콤보 박스에 어떤 구성 요소를 사용하고 있습니까? ''또는 다른 것? – meriton

+1

그렇게 생각하십시오. 표준 JSF 컴포넌트 세트에는 콤보 박스가 전혀 없다. OP는 아마 드롭 다운리스트와 혼동을 일으킬 것이다. – BalusC

+0

네,''를 사용합니다. –

답변

5

작업 메서드에서 결과를 반환하면 새 구성 요소 트리가있는 뷰의 새 인스턴스가 생성됩니다. 대신 null을 반환하면 기존 뷰 인스턴스 (기존 구성 요소 트리)가 재사용됩니다.

JSF의 구성 요소는 상태 유지가 허용됩니다. 예를 들어, JSF는 유효성 검사가 실패하더라도 모델 (백킹 바이)을 업데이트하지 않지만 사용자가 입력 한 유효하지 않은 데이터를 다시 전달합니다. 이것은 구성 요소에 유효하지 않은 데이터를 유지함으로써 구현됩니다.

관련 문제