0

Struts2を使用してアップロードユーティリティを実装しました。アクションクラスのsetFileContentType()メソッドをプログラムでチェックインすることにより、特定のファイルタイプのアップロードをすでに制限しています。

残りの問題の1つは、アップロードされたファイルが最大ファイルサイズ設定を超えた場合に、カスタマイズされたエラーページをユーザーに表示することです。

私はこれを調査し、返された「入力」結果とともに検証インターセプターをどのように使用するかを見てきました。しかし、私はまだすべてのピースをまとめることができません。

私の最終目標は次のとおりです。ユーザーが大きなファイルをアップロードしようとした場合、自分のエラーメッセージを含む新しいページを表示したいと思います。

ヒント/提案はありますか?

更新 struts.xmlに次の構成があります。

<action name="FileUpload" class="common.FileUpload">
<interceptor-ref name="fileUpload"/>
  <result name="success">common/FileUpload/FileUpload.jsp</result>
  <result name="UploadResult">common/FileUpload/FileUploadResult.jsp</result>
</action>

ファイルサイズエラーを検出したい場合に備えて、上記の構成に検証インターセプターがないことを知っています。問題は、現時点でそれがどのように機能するのかわからないことです。

ありがとう

4

1 に答える 1

1

FileUploadにはfilesizeパラメーターがあり、構成でそれを使用できます

    <interceptor-ref name="fileUpload">
        <param name="maximumSize">50</param>
    </interceptor-ref> 

カスタムメッセージを提供したい場合は、ここで設定できます

struts.messages.error.file.too.large

アップロードされたファイルがmaximumSizeで指定された大きすぎる場合に発生します。

アクションValidationAwareを実行すると、Struts2でこのエラーが発生した場合に通知されます。呼び出されて、プロパティファイルで定義しaddFieldErrorたエラーkeyとメッセージを通知します。呼び出されると、必要なアクションを実行できます。struts.messages.error.file.too.largeaddFieldError

FileUploadInterceptorは、ファイルのアップロード中に、ファイルまたはファイルタイプ、サイズの検証も実行します。アクションがValidationAwareを実装している場合は、addFieldErrorコールバックメソッドを呼び出して、そのアクションに検証メッセージを設定します。

于 2012-05-23T09:24:36.040 に答える