课时24
1.准备资源文件,添加到src目录下,资源文件的命名格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName是资源文件的基本名,我们可以自定义,但language和country必须是java支持的语言和国家。如:
中国大陆: test_zh_CN.properties
内容:welcome=欢迎测试
welcome=\u6B22\u8FCE\u6D4B\u8BD5
对于中文的属性文件,我们编写好后,应该使用jdk提供的native2ascii命令把文件转换为unicode编码的文件(eclipse自动转换)。命令的使用方式如下:
native2ascii 源文件.properties 目标文件.properties
美国: test_en_US.properties
内容:welcome=welcome to test
2.
<constant name="struts.custom.i18n.resources" value="test"/>
3.在JSP页面中访问国际化信息
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <!-- struts2标签 --> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>校验</title> </head> <body> <s:text name="welcome"></s:text> </body>
在action中访问国际化信息
package tutorial; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class Person extends ActionSupport{ @Override public String execute() throws Exception { ActionContext.getContext().put("message", getText("welcome")); return "message"; } }
在表单标签中,通过key属性指定资源文件中的key,如:
<s:textfield name="realname" key="welcome"/>
课时25
资源文件中的内容如下:
welcome={0},欢迎测试{1}
welcome={0},welcome to test{1}
在jsp页面中输出带占位符的国际化信息
<s:text name="welcome"> <s:param>zzy</s:param> <s:param>study</s:param> </s:text>
在Action类中获取带占位符的国际化信息,可以使用getText(String key, String[] args)或getText(String aTextName, List args)方法。
public String execute() throws Exception { ActionContext.getContext().put("message", this.getText("welcome",new String[]{"zzy","study"})); return "message"; }
课时26
在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件(全局范围资源文件)中寻找。
课时27
原文:http://www.cnblogs.com/zziy/p/4913855.html