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:

我正在使用 struts 版本 2.1.8.1

编辑2:

另一件事是,当我添加:

<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

在 JSP 中使用<s:actionerror />标记来打印错误。

于 2012-06-26T08:27:27.750 回答
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 回答