今天在家里学习了Struts2中的国际化技术,国际化技术其实我的理解就是同一个网站项目或者同一个网页能够自由切换或者自适应本地语言,并根据本地语言进行网页展示。
实现Struts2中的国际化的方法是:
一、首先在Struts.xml中配置固定的节点。
即添加两个节点:<constant name="struts.custom.i18n.resources" values="XXX"/>
<constant name="struts.i18n.encoding" values="UTF-8"/>
注:XXX为语言配置文件的前缀名
二、接下来是在根目录下创建多个语言配置文件。具体形式如下:XXX_zh_CN.properties、XXX_en_US.properties文件。
在该文件中有具体的键值对:例如:LoginName=用户名、LoginName=UserName
三、创建一个JSP页面,并且在JSP页面中添加相对应的标签。(我这里使用了struts标签)例如:<s:text name="name" key="LoginName"/>
注:这个标签里面的Key值是相当重要的,因为这个Key值能与语言配置文件中的键的名称必须要相对应。这样才能方便找出其对应的语言
四、以上都做好了以后,既可以生成浏览刚才创建的jsp页面了。通过修改浏览器的语言来时间对页面语言显示的切换。
五、如果想在页面中自由切换语言,而不是需要改变浏览器的语言时,则需要做一下几个步骤:
5.1、首先创建一个Action,并且集成了ActionSupport,而且实现了默认的excute()方法后并且只是单纯的返回一个success字符串。例如:包名为:
LoginAction 类名为:LoginCheck
5.2、然后在struts.xml的配置文件中,加上action的处理节点.例如:
<action name="ChangeLang" class="LoginAction.LoginCheck">
<result name="success"></result>
</action>
5.2、其次是在JSP页面上添加两个A标签。具体的写法为:<a href="XXX1">中文版</a><a href="XXX2">英文版</a>
注:上面的XXX1的具体形式为:5.1创建的Action的名称?request_locale=zh_CN
上面的XXX2的具体形式为:5.1创建的Action的名称?request_locale=en_US
5.3、这样点击任意一个a标签的话,那么这个jsp中的页面的语言就会发生变化,而不再需要设置浏览器的语言类别。