struts2 国际化资源文件测试
2014-03-18 16:05
260 查看
国际化资源文件包括:全局范围(在src目录下)、包范围、action范围
一.全局范围(在src目录下):
资源文件的命名格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName为资源文件的基本名,我们可以自定义,但
language和country必须是java支持度的语言和国家。如:中国
大陆:baseName_zh_CN.properties
美国:baseName_en_US.properties
对于中文的属性文件,应该使用jdk提供的native2ascii命令把
文件转换为ascii编码的文件,命令使用方式如下:
native2ascii 源文件.properties 目标文件.properties
接下来在struts.xml文件中定义为全局资源文件,语句为
<constant name="struts.custom.i18n.resources" value="chao"></constant> chao为baseName
访问国际化信息:
1 在JSP页面中使用<S:text name=""/>标签输出国际化信息
2 在action类中可以继承ActionSupport,使用getText()方法得到国际化信息
3 在表单标签通过key属性制定资源文件的key,如<s:textfild
name="realname" key="user"/>
输出带有占位符的国际化信息:
资源文件内容如下:
welcome={0},欢迎来到这里{1}
在jsp中输出国际化信息:
<s:text name="welcome">
<s:param>小明</s:param>
<s:param>学习</s:param>
</s:text>
在action类中可以继承ActionSupport,使用getText(key,
args)方法得到国际化信息
二.包范围:放在包中,可以被包中和子包中类访问。首先在包中寻找国际化内容,寻找不到到默认资源文件寻找
三.action范围:只会对某一个action有效,baseName为ActionClassName,即类名。当类访问key时访问顺序向上转。
通过标签直接访问资源文件,无需配置;
<s:i18n name="chao">
<s:text name="welcome"/>
</s:i18n>
chao 为类路径下资源文件基本名
如果要访问的资源文件在某个人包下,则可以
<s:i18n name="chao/package">
<s:text name="welcome">
<s:param>小明</s:param>
<s:param>学习</s:param>
<s:text>
</s:i18n>
上面访问package包下的资源文件,package为baseName
下面代码为全局范围资源文件访问实例代码:
chao_en_US.properties:welcome={0},welcome to here{1}chao_zh_CN.properties:
一.全局范围(在src目录下):
资源文件的命名格式如下:
baseName_language_country.properties
baseName_language.properties
baseName.properties
其中baseName为资源文件的基本名,我们可以自定义,但
language和country必须是java支持度的语言和国家。如:中国
大陆:baseName_zh_CN.properties
美国:baseName_en_US.properties
对于中文的属性文件,应该使用jdk提供的native2ascii命令把
文件转换为ascii编码的文件,命令使用方式如下:
native2ascii 源文件.properties 目标文件.properties
接下来在struts.xml文件中定义为全局资源文件,语句为
<constant name="struts.custom.i18n.resources" value="chao"></constant> chao为baseName
访问国际化信息:
1 在JSP页面中使用<S:text name=""/>标签输出国际化信息
2 在action类中可以继承ActionSupport,使用getText()方法得到国际化信息
3 在表单标签通过key属性制定资源文件的key,如<s:textfild
name="realname" key="user"/>
输出带有占位符的国际化信息:
资源文件内容如下:
welcome={0},欢迎来到这里{1}
在jsp中输出国际化信息:
<s:text name="welcome">
<s:param>小明</s:param>
<s:param>学习</s:param>
</s:text>
在action类中可以继承ActionSupport,使用getText(key,
args)方法得到国际化信息
二.包范围:放在包中,可以被包中和子包中类访问。首先在包中寻找国际化内容,寻找不到到默认资源文件寻找
三.action范围:只会对某一个action有效,baseName为ActionClassName,即类名。当类访问key时访问顺序向上转。
通过标签直接访问资源文件,无需配置;
<s:i18n name="chao">
<s:text name="welcome"/>
</s:i18n>
chao 为类路径下资源文件基本名
如果要访问的资源文件在某个人包下,则可以
<s:i18n name="chao/package">
<s:text name="welcome">
<s:param>小明</s:param>
<s:param>学习</s:param>
<s:text>
</s:i18n>
上面访问package包下的资源文件,package为baseName
下面代码为全局范围资源文件访问实例代码:
chao_en_US.properties:welcome={0},welcome to here{1}chao_zh_CN.properties:
welcome={0}\uFF0C\u6b22\u8fce\u5149\u4e34{1}struts.xml:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.custom.i18n.resources" value="chao"></constant><!-- value为baseName --> <package name="chao" extends="struts-default"> <action name="hello_*" class="chao.ChaoAction" method="{1}"> <result>/WEB-INF/page/message.jsp</result> </action> </package> </struts>ChaoAction.java:
package chao; import com.opensymphony.xwork2.ActionContext; import com.opensymphony.xwork2.ActionSupport; public class ChaoAction extends ActionSupport { private static final long serialVersionUID = 1L; @Override public String execute() { /*ActionContext.getContext().put("message", this.getText("welcome"));*/ ActionContext.getContext().put("message", this.getText("welcome",new String[]{"xiaoming","study"})); return "success"; } }index.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib uri="/struts-tags" prefix="s"%> <!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>Insert title here</title> </head> <body> <%-- <s:text name="welcome"></s:text> --%> <s:text name="welcome"> <s:param>小明</s:param> <s:param>学习</s:param> </s:text> </body> </html>message.jsp:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!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>Insert title here</title> </head> <body>${message } </body> </html>
相关文章推荐
- struts2国际化与资源文件
- Struts2的国际化、配置全局资源与输出国际化信息、国际化—JSP中直接访问某个资源文件
- struts2配置包范围国际化资源文件--包范围
- struts2 资源文件:国际化
- struts2--通过超链接动态加载国际化资源文件
- Struts2的国际化和访问资源文件的几种方式
- struts2配置包范围的国际化资源文件
- struts2国际化---配置国际化全局资源文件并输出国际化资源信息
- struts2配置包范围的国际化资源文件
- struts2国际化-包范围资源文件
- 3.10.1: Struts2的国际化---Struts2中加载全局资源文件
- Struts2使用native2ascii命令处理国际化资源文件
- struts2使用JSP直接访问国际化资源文件
- Struts2的i18n国际化-关于默认资源文件
- struts2国际化——Action范围资源文件
- 复习struts2之配置action范围国际化资源文件
- 3.10.4: Struts2的国际化---加载资源文件的方式
- struts2国际化-JSP中直接访问某个资源文件
- struts2配置国际化全局资源文件 并 输出国际化信息
- Struts2定义国际化资源文件