您的位置:首页 > 编程语言 > Java开发

Struts2的国际化与上课总结

2013-03-05 20:55 169 查看
今天主要学习的struts2的国际化,国际化其实让我来说就是为了方便不同的人群所写的一个共同的程序,里面可以包括不同的语言,不同的提示信息,今天把国际化的知识讲完了,感觉还可以,上课的时候做了两个实例,感觉也并不是那磨难,只需要加上配置文件,有三种方法,虽然遇到一些bug,但都解决了,在不同的需求可能需要不同的方法,接下来来看看专业术语的解释:

一个系统的国际化就是根据操作系统的语言,页面上的表现形式发生相应的变化。比如如果操作系统是英文,页面的文字应该用英语,如果操作系统是中文,页面的语言应该是中文。

修改显示的语言在浏览器---->工具---->语言修改即可

首先

(1)、建立资源文件

资源文件的命名规则:

默认的命名为:

文件名前缀.properties

根据语言的命名为:

文件名前缀.语言种类.properties

例如:

中文:

resource_zh_CN.properties

内容:

item.username=用户名

item.password=密码

英文:

resource_en_US.properties

内容:

item.username=username_en

item.password=password_en

默认:

resource.properties

内容:

item.username=username

item.password=password

csdn --->告诉struts2你的基础名称是什么?

配置常量>struts.xml文件中配置如下:

csdn的基础名的配置文件位于src下:



注:个人理解:就是根据value的值来定义配置文件的名字

位于src下面:



文件内如如下:



启动tomcat 加载资源文件:



如果配置文件位于包中:

单独把配置文件放在一个包里,需要在struts.xml文件中修改其value值改成该包下的前缀名



那么在struts.xml文件中怎么配置:



hbsi就是基础名称,这个基础可以随便写,但必须和配置文件一致

那么在jsp页面中怎么获取国际化的标签值:

首先使用struts标签需要在头文件中声明

<%@ taglib uri="/struts-tags" prefix="s" %>



这里用了两种格式,一种是默认的xhtml,另外一种是simple简单的;

在默认的主题时,key就代表你在国际化配置文件的name的值在这里可以获取到

在simple主题下就需要一个单独的标签来进行定义,<s:text />标签值得注意的是提交的值需要用到%{getText(‘login’)}方法;

那麽怎么在action中设置让他也显示呢?

在action中的方法写

List<String> list = new ArrayList<String>();

list.add("小灰灰");

list.add("小胖子");

System.out.println(getText("wel", list));

就可以输出了;





分析:

出现上面这个错误,代表上传文件的大小过大,虽然在写了国际化配置信息,但是却没有输出中文,

解决:

在找到核心包文件下



的struts-messages.properties配置文件,打开,可以搜索一下Request exceeded allowed size limit!就会发现其实他属于另一个错误信息:

struts.messages.upload.error.SizeLimitExceededException=Request exceeded allowed size limit! Max size allowed is: {0} but request was: {1}!

只需要把他添加到国际化中,输出中文格式就可以了

但是有个问题很纠结,它提示两次相同的信息

· 文件超过设置的大小! 限制的大小是 5,242,880 上传文件的大小是: 7,849,073!

· 文件超过设置的大小! 限制的大小是 5,242,880 上传文件的大小是: 7,849,073!

这个有点不懂,还有一个问题就是为什么是抛出异常而没有执行

struts.messages.error.file.too.large 这个呢;

哦哦就在刚才那一会我明白了,我在那个struts.xml文件中设置了这个限制大小

<constant name="struts.multipart.maxSize" value="5242880"/>

一开始我写的是和拦截器param name="maximumSize">5242880</param>这个属性值相同,如果上传的文件超过这个数值就会出现异常,

maximumSize<=struts.multipart.maxSize的值,否则就会出现这个异常

所以改一下

<constant name="struts.multipart.maxSize" value="10485760"/>

<interceptor-ref name="fileUpload">

<param name="allowedTypes">image/jpeg,image/pjpeg,image/bmp,application/zip</param>

<param name="maximumSize">5242880</param>

</interceptor-ref>

有关文件上传的错误信息:

位于:org.apache.struts2包下的struts-messages.properties

这个信息的组成查看org.apache.struts2包下的struts-messages.properties文件。在这个文件中,有三个键值对:



{0}:代表页面上<input name=”upload” type=”file”/>中的name的值

{1}:代表文件上传的名称

{2}:文件保存在临时目录的名称。

临时目录为work\Catalina\localhost\struts_upload_interceptor

{3}:代表文件上传类型,或者文件上传大小。上面的错误代表文件上传类型。如果报第一个错误,则代表文件上传大小。

本文出自 “我为自己代言” 博客,请务必保留此出处http://fighter2013.blog.51cto.com/6204387/1147904
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: