모달 대화 상자에서 파일을 업로드해야합니다. 그래서 간단한 비 아약스 모드 primeFaces 너무 fileUpload
구성 요소를 어떻게 관리 :PrimeFaces UploadedFile 모달 대화 상자에서 afax sizelimit
save
방법은 콩에서 호출
<p:dialog id="dlg" widgetVar="dlg" modal="true" appendTo="@(body)"
header="#{messages['pages.dlg']}" closeOnEscape="true">
<h:form id="dlgForm" enctype="multipart/form-data">
<!-- Some business data -->
<p:fileUpload value="#{bean.uploadedFile}" mode="simple"/>
<p:commandButton id="saveBtn" action="#{bean.save}" update="messages" ajax="false"
partialSubmit="dlgForm"/>
</h:form>
</p:dialog>
내가 비즈니스 로직을 실행하는 서비스 방법이있다. 이제 새로운 요구 사항이 생겼습니다 : 파일 크기를 5MB로 제한하십시오. 하지만 sizeLimit
속성을 fileUpload
구성 요소에 사용하려고하면 아무 일도 일어나지 않습니다. 그 이유는 유효성 검증이 클라이언트 측에서 이루어 지지만 비활성화 된 ajax
을 사용하면 유효성을 검증 할 수 없기 때문입니다.
- 빈에
uploadedFile
는requestScoped
입니다 - 그래서save
버튼을 호출 할 때이 데이터를 얻을 수 없습니다 나는 몇 가지 문제를advanced
모드를 가지고 있지만, 얻을 것을 시도했다.fileUploadListener
에만 저장할 수 있지만 문제가 있습니다. 다른 비즈니스 데이터가 해당 프로세스의 일부로 저장되어야합니다. 업로드 된 파일은 사용자가 제공 한 정보의 일부입니다. 나는 그 데이터없이 파일을 저장하는 것만을 호출 할 수 없다. upload
을 누르면 미리보기 (이미지 파일 인 경우)로 파일을 업로드 할 때 파일을 업로드 한 후 즉시 미리보기가 사라집니다.advanced
모드의 하단 필드에 계속 머물도록 내가 어떻게 말할 수 있습니까?fileUpload
구성 요소?save
버튼을 누를 때만 서버 측에 저장됩니까?
그럼 질문 : 어떻게 그러한 대화 내에서 advanced
구성 요소 유형을 사용할 수 있습니까? 저는 PrimeFaces 6.0, JSF 2.2 (mojara)를 사용하고 있습니다.
이 ** 또한 ** 뷰잉 된 콩입니다, 귀하의 질문에 언급 한대로 requestscoped 하나! 그리고 JSFHelper에있는 것이 아니라면 어딘가에 실제로 저장하는 것을 보지 못합니다 (이름 만). 그런 다음이 메소드에 인라인 코드를 포함하는 것이 좋습니다. – Kukeltje
@Kukeltje 대화 상자의 버튼을 눌렀을 때 save 메소드에서 저장이 발생합니다. JSFHelper는'UploadedFile' 인스턴스에서 바이트를 가져 오기 위해서만 사용됩니다. –
죄송합니다, 나는 작은 부분을 놓쳤습니다. 하지만 아직도 ** ** 범위를 변경 했지, 그렇지? – Kukeltje