2011-11-12 2 views
0

3 탭이있는 <rich:tabpanel>을 사용하고 있습니다. 두 번째 탭에는 3 <rich:fileUpload> 구성 요소가 있습니다. 3 개의 필드는 모두 필수 항목입니다. 따라서 페이지의 내용을 제출할 때 Backing Bean에서 유효성 검사를 수행합니다.다른 필드의 유효성을 검사하면 선택한 파일이 사라집니다.

파일 업로드 구성 요소 중 하나에서 파일을 선택하고 다른 파일을 비워두면 예상대로 두 개의 비어있는 구성 요소에 대한 유효성 검사 메시지가 표시됩니다. 그러나 첫 번째 구성 요소도 다시 렌더링되고 파일 내용이 뒷받침 빈의 등록 정보에 저장되어 있어도 선택한 파일은 유지되지 않습니다.

어떻게 다시 렌더링 할 때 선택한 파일을 유지할 수 있습니까?

답변

1

입력 필드 자체는 다시 렌더링하지 말고 유효성 확인 메시지의 소유자 만 다시 렌더링하십시오. reRender 속성에 메시지 구성 요소의 ID를 지정하는 <a4j:commandButton>으로 할 수 있습니다 (기본적으로 단일 파일을 선택할 수는 없기 때문에 RichFaces 3.3이 아닌 4.0을 사용한다고 가정합니다). 현재 4.0에서 파일 업로드).

조치 방법에서 필요성을 확인하지 않아도됩니다. 입력 구성 요소에 required="true"을 설정하기 만하면됩니다.

+0

감사합니다. BalusC. Big Fan :)이 작업은 rich : fileUpload에서도 가능합니까? 다시 시도 할 것입니다. 특정 재 렌더링을하지는 않습니다. 나는 제출할 때 사용하는 을 가지고 있으며, 일단 새로운 구성 요소가 제출되면 제출합니다. 귀중한 시간을 내 주셔서 다시 한 번 감사드립니다. –

+0

아, 실수로 RichFaces를 사용하면서 Ajax를 제출하고 다시 렌더링하는' '을 사용하고 있다고 생각했습니다. 나는 대답을 편집했다. – BalusC

+0

대단히 감사합니다. BalusC. 나는 이것을 시도 할 것이다 : –

관련 문제