Struts2温习(9)--国际化的应用
1. Java对国际化的支持: Java内部使用unicode编码方式。
1) java.util.Locale 表示了特定的地理、政治和文化地区. 环境信息对象。
由语言代码和区域代码组成。
语言代码小写字母: en,zh
区域代码大写字母: US,CN
2) java.util.ResourceBundle 用于绑定特定语言环境的资源对象。
资源文件的命名规范:基本名_语言代码[_区域代码].properties
默认资源文件名:基本名.properties
中国:基本名_zh_CN.properties
美国:基本名_en_US.properties
3) java.text.MessageFormat 用于对含有占位符的字符进行格式化输出。
4) 编码方式:
Locale locale = Locale.CHINA;
ResourceBundle rb = ResourceBundle.getBundle("资源文件的基本名", locale);
String value = rb.getString("key");
String str = MessageFormat.format(value, Object... arguments);
2. Struts2的国际化应用
1) 在classpath中添加针对特定语言环境的资源文件
2) 在struts.xml中通过常量配置注册资源文件的基本名:
<constant name="struts.custom.i18n.resources" value="msg"/>
3) 在JSP页面中,用<s:text value="资源文件中的key"/>就可以取出本地化的消息
Struts2的表单标签都有一个属性key用来取出本地化的消息
4) 在Action中,可以使用ActionSupport类提供的getText("key", 给占位符传值的对象数组);也可以获取本地化的消息
具体示例
index.jsp
Java代码
I18NAction.java
Java代码
Java代码
一般情况下我们浏览器默认语言都是中文,运行呈程序效果如下
如果更换浏览器语言为英语【美国】,那么重新刷新页面,结果就是英文界面如下