2012-04-14 8 views
0

実際には、STATE_SAVING_METHOD = clientの場合、ファイルアップロードでissueのプライムフェイスを克服することができます。私はServlet 3.0を使用しているので、hereと書いたBalusCコードを使用すると考えました。私は、送信ボタンをクリックしたときに、私が直面しています問題は、私はこのform enctype = "multipart/form-data"は、validationFailedのajax partial-responseを返します

<?xml version="1.0" encoding="UTF-8" ?> 
    <partial-response> 
    <changes> 
    <update id="javax.faces.ViewState"> 
     <![CDATA[somejunk]]> 
    </update> 
    </changes> 
    <extension primefacesCallbackParam="validationFailed">{"validationFailed":false}</extension> 

ようですがFileRenderer.javaでdecodeメソッドを呼び出すことはありませんAJAX部分REPONSEを受けました。私はENCTYPEを削除する場合は、decodeメソッドを呼び出すと、明らかライン上MultipartRequestにキャストに失敗しました:

File file = ((MultipartRequest) context.getExternalContext().getRequest()).getFile(clientId); 

は図書館: PF 2.2.1 JSF 2.0.9

+0

validationFailed <---あなたは、フォーム内のすべてのバリデータを持っていますか?近くの任意のフィールドにrequired = "true"と似ていますか? 「必須」フィールドを入力する前にフォームを送信しようとしていますか? – Daniel

+0

@Daniel私は例で述べたのと同じupload.xhtmlを使用しましたが、すべてはオプションです。 – Ravi

答えて

1

私はSTATE_SAVING_METHODから切り替えけれども=サーバーからクライアントへ。私はweb.xmlのorg.primefaces.webapp.filter.FileUploadFilterを削除するのを忘れていました。したがって、Primefaces FileUploadFilterは毎回部分的なajax応答で応答していました。私はそれを削除し、今は正常に動作しています。

@BalusC、あなたの素晴らしいコードをありがとう!

関連する問題