我们经常看到有的网站可以选择不同的语言来进行浏览。这就是国际化,struts2为我们提供了国际化功能,可以是我们的web开发很容易的实现国际化。
这里主要是一些struts2学习过程中的一些心得的总结,欢迎大家交流学习http://blog.csdn.net/IAccepted。
我们以英语和汉语双语为例来讲解国际化的实现过程。
1.首先我们要建立两个资源文件。baseName_en_US.properties和baseName_en_US.properties。其中baseName可以为任何名称,但一般以相应的类名作为baseName
这两个资源文件就是国际化中对应的中文和英文对照表。里面存储的是键值对。
username=Username
username=\u7528\u6237\u540d
2.在struts.xml中进行国际化文件的配置
<constant name="struts.custom.i18n.resources" value="baseName"/>
3.将jsp文件中用到“用户名”的地方改为<s:text name="username"/>这样工程就会在这里用相应的资源文件中的内容来显示,如果是中文就会显示用户名,如果是英文就会显示username。
<form action="Logon" method="post"> <s:text name="username">:</s:text>//这里就会根据语言环境的选择不同而显示不同的内容 <input type="text" name="id"/> <s:text name="pwd">:</s:text> <input type="password" name="pwd"> <input type="submit" value="<s:text name="sub"/>"> </form>4.可以利用url后面添加参数的方法实现自己选择语言。
<li><a href="ShowStudent?request_locale=zh_CN">学生信息管理</a></li> <li><a href="ShowStudent?request_locale=en_US">Student Management</a></li>这里传递的参数会被存储在session范围内,以后你每次显示的网页都会根据request_locale这个参数的值进行语言的选择,这个过程是自动的不用人为实现。
另外还必须注意的是要实现页面显示的国际化,必须先经过action才可以,这主要是因为,struts2中实现国际化的功能被封装在了拦截器中实现。如果不经过action而直接由页面转向页面,则不能实现国际化。