4

これが私のstruts.xmlの一部です:

<constant name="struts.custom.i18n.resources" value="global" />

<action name="picture_save" method="pictureSave" class="PictureActionBean">
    <interceptor-ref name="fileUpload">
        <param name="maximumSize">
            2097152
        </param>
        <param name="allowedTypes">
            image/bmp,image/gif,image/jpeg,image/jpg,image/png
        </param>
    </interceptor-ref>
    <interceptor-ref name="defaultStack"></interceptor-ref>
    <result name="success" type="redirect">picture</result>
    <result name="error">error</result>
</action>

私のglobal.propertiesファイルはsrc/に直接保存されており、次のものが含まれています。

struts.messages.error.uploading=Upload failed
struts.messages.error.file.too.large=Upload file is too large
struts.messages.error.content.type.not.allowed=Wrong file type uploaded

jspでエラーを表示する方法は次のとおりです。

<s:fielderror />

現在、たとえば大きすぎるファイルをアップロードすると、次のエラーが発生します。

サイズ(6561343)が構成された最大値(2097152)を超えているため、要求は拒否されました

上記のメッセージの代わりに、「アップロードされたファイルが大きすぎます」と表示させます。これを行う簡単な方法は何ですか?

編集1:

ストラットバージョン2.1.8.1を使用しています

編集2:

もう1つは、次のように追加した場合です。

<result name="input" type="redirect">error</result>

struts.xmlにアクセスすると、エラーはまったく表示されません。これの理由は何ですか?

4

4 に答える 4

2

ふふ、あなたはこの質問に固執しました。とてもシンプルなようです。

ここで例を確認してください:http ://struts2-by-ash.blogspot.com/2012/06/override-struts-2-messages.html

最高、j

于 2012-06-25T21:29:25.097 に答える
0

Struts のデフォルト プロパティをオーバーライドするソース

フレームワークは、ニーズに合わせて変更できる多くのプロパティを使用します。これらのプロパティーを変更するには、struts.properties ファイルでプロパティーのキーと値を指定します。プロパティ ファイルはクラスパスのどこにでも配置できますが、通常は /WEB-INF/classes の下にあります。

リダイレクトすると、エラー メッセージは表示されなくなります。この状況を処理するために新しいアクションを呼び出していたため、struts2 は messageStoreInterceptor を提供します。

ソースMessageStoreInterceptor

注: ここでは古いバージョンの struts を指しているので、最新バージョンを使用している場合は、URL のバージョンを変更してください。

于 2012-06-23T03:53:55.690 に答える
0

まず、struts.multipart.maxSize に指定したファイル サイズを超えるファイルをアップロードしようとすると、このエラーが発生します。

非常に簡単な解決策があります。struts.xml で、struts.multipart.maxSize のファイル サイズの値を増やします。

  <constant name="struts.multipart.maxSize" value="50777216000" />
  <param name="maximumSize">15728640</param>

param name="maximumSize" の値を struts.multipart.maxSize の値よりも小さくしてください。上記の場合と同様に、struts.multipart.maxSize の制限を超えない限り、global.properties で定義されたカスタマイズされたエラーが取得されます。したがって、struts を維持するようにしてください。 multipart.maxSize の値を高い範囲に設定します。

于 2012-07-31T12:37:36.313 に答える
0

<s:actionerror />JSP でタグを使用して、エラーを出力します。

于 2012-06-26T08:27:27.750 に答える