struts国际化
http://www.itjianghu.net/120107/40915516678240795.htm
说明:在Spring MVC中开始比较全面的支持注解,通过注解可以大大简化J2EE应用开发的配置、精简开发人员的工作量从而提高开发效率。
国际化
全局范围/包范围/
新建项目
导入Struts的Jar文件放到WebRoot-WEB-INF的lib目录下
struts.xml文件
第三部在web.xml文件中配置启动项
开始新建资源文件
src下
如果开发工具不支持把中文转换成unicode编码,应该使用JDK提供的native2ascii命令把文件转换为unicode编码
当准备好资源文件之后,我们可以在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件
如下:<constant name="struts.custom.i18n.resources" value="itcast"/> itcast为资源文件的基本名
在JSP中使用
<s:text name=""/>标签输出国际化信息 name为资源文件中的key
在Action类中,可以继承ActionSupport,使用getText()方法得到国际化信息该方法的第一个参数用于指定资源文中的KEy
Action类
package cn.itcast.action;
public class PersonManagerAction extends ActionSupport{
public String execute() throws Exception{
//this.getText("welcome");资源文件的属性
ActionContext.getContext().put("message",this.getText("welcome"));
return "message";//返回message这个视图
}
}
默认执行Action的execute()方法
===============================================
输出带占位符的国际化信息
资源文件的Value 中{0},欢迎来到传智播客{1}
<s:text name="welcome">
<s:param>liming</s:param>
<s:param>study</s:param>
</s:text>
在Action中如何传入占位符
public String execute() throws Exception{
ActionContext.getContext().put("message",this.getText("welcome",new String[]{"liming","study"}));
return "message";//返回message这个视图
=======================================================================================================
国际化-包范围资源文件
针对不同模块,使用包范围来组织国际化文件
方法如下:
在java的包下设置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源
当查找指定Key消息是,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.coustom.i18n.resources指定的资源文件中寻找
优先在包下找资源文件 找不到才会去上一层找
-=========================================================
国际化-Action范围资源文件
方法如下
在Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassName为action类的简单名称
国际化-JSP中直接访问某个资源文件
sturts2为我们提供了<s:i18n>标签,使用<s:i18n>标签我们可以在类路径下直接从某个资源文件中获取国际化数据,而无需任何配置
<s:i18n name="itcast">
<s:text name="welcome"/>
</s:i18n>
itcast为类路径下资源文件的基本名
如果要访问的资源文件在类路径的某个包下,可以这样访问;
<s:i18n name="cn/itcast/action/package">
<s:text name="welcome">
<s:param>校长</s:param>
</s:text>
</s:i18n>