我用struts2 做了个拦截器
struts.xml片段如下
[code="java"]
<interceptor-ref name="fileUpload">
<!-- 允许上传的文件大小 -->
<param name="maximumSize">1024</param>
</interceptor-ref>
[/code]
我在 messageResource_zh_CN.properties 文件中重定义了maximumSize的拦截返回信息。
[code="java"]
struts.messages.error.file.too.large=文件太大
[/code]
这样,当上传的文件大于1K后,在页面上就会出现 "文件太大" 这一信息。
但是,
我想告诉客户可以上传的文件的最大值是多少
我现在有一种简单的方法:将
struts.messages.error.file.too.large=文件太大
变成
struts.messages.error.file.too.large=文件大小不能超过1K
但在其他页面中,有时文件大小的限制是100K,而struts.messages.error.file.too.large只有一个。所以不能写死为1K。
那么,根据我目前的知识水平,我想到了:
struts.messages.error.file.too.large=文件大小不能超过{0}
{0}是参数。但我弄了半天也不知道该如何传递给{0}一个具体的字符串!
哪位高人能帮帮我,谢谢!
[b]问题补充:[/b]
To: Anddy
但是,struts2 中的 fileupload拦截器的类 FileUploadInterceptor 在
org.apache.struts2.interceptor里。
我在自己的目录下(例如:src\my\com\test)创建properties文件的话,没有用。
FileUploadInterceptor 好像只能调取src下的messageResource_zh_CN.properties中的内容。
[b]问题补充:[/b]
To: Anddy
我试过了,答案是否定的。我觉得我没有理解错你的意思。
要不你也试下?
[quote]这里面的action名就是上面xml配置fileupload的action的名字。[/quote]
上面有点小错误,
这里面的action名就是上面xml配置fileupload的[color=blue]action对应的类[/color]的名字。
:
[quote]我在 messageResource_zh_CN.properties 文件中重定义了maximumSize的拦截返回信息。
Java代码 [/quote]
[code="java"]struts.messages.error.file.too.large=文件太大 [/code]
楼主你定义的是全局的提示信息。
解决办法:
[size=large]定义局部的提示信息,为每一个Action新建一个properties文件,文件名为XXX.properties(Action名.properties)[/size]
fileupload拦截器的类 FileUploadInterceptor肯定是通过Struts.xml文件中的如下代码配置到相应的action上
[code="xml"]
[/code]
而
[quote]定义局部的提示信息,为每一个Action新建一个properties文件,文件名为XXX.properties(Action名.properties)
[/quote]
这里面的action名就是上面xml配置fileupload的action的名字。
LZ应该明白了!.proterties属性文件时挂载在相应的action上,不是挂载在interceptor上!
让我奇怪的是,为什么要设计 直接用Interceptor返回消息?
你只要让Interceptor在invocation的valueStack里放个 值,
然后result定位到出错页面,页面里使用s:text标签
根据valueStack里那个 key的值
输出message就好了。