`
在水伊方
  • 浏览: 107220 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

struts2--国际化入门

 
阅读更多

       如果我们的项目需要支持多国语言,则我们需要对项目进行国际化,下面简单介绍一下Struts2中为我们提供的国际化功能,仅作为入门知识

 

Struts2中的国际化资源文件分为以下3种:

1、全局范围的国际化

      首先我们需要编写国际化资源文件,资源文件的命名如下:     

         baseName_language_country.properties

         baseName_language.properties

       

       其中baseName是资源文件的基本名,我们可以自定义,但languagecountry必须是java支持的语言和国家。如:

       中国大陆: baseName_zh_CN.properties

       美国: baseName_en_US.properties

     

    现在为应用添加两个资源文件:

    第一个存放中文:i18n_zh_CN.properties

       内容为:message=您好,欢迎来到中国!

       第二个存放英语(美国):i18n _en_US.properties

       内容为:message=Hello, welcome to China!

     

       当准备好资源文件之后,我们可以在struts.xml中通过struts.custom.i18n.resources常量把资源文件定义为全局资源文件,如下:

<!-- value的值为资源文件的基本名  -->
<constant name="struts.custom.i18n.resources" value="i18n" />

       资源文件在项目中的位置:    

      然后我们就可以在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>欢迎页面</title>
</head>
<body>
	<s:text name="message" />
</body>
</html>

 

部署项目,访问welcome.jsp页面,当本地环境是中文时,页面显示如下:

 当本地环境是英文时,页面显示如下:

 

2、包范围的国际化

       在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。

       这时我们需要在要过国际化资源的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。

       现在为应用添加包范围的两个资源文件:

       第一个存放中文:package_zh_CN.properties

       内容为:message=包范围:您好,欢迎来到中国!

       第二个存放英语(美国):package_en_US.properties

       内容为:message=package : Hello, welcome to China!

  

         配置文件:

<?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>
	<!-- value的值为资源文件的基本名  -->
	<constant name="struts.custom.i18n.resources" value="i18n" />
	
	<package name="user"  namespace="/native" extends="struts-default">  
        <action name="native" class="com.struts.action.NativeAction">  
            <result name="success">/welcome.jsp</result>  
        </action>    
    </package> 
</struts>

 

资源文件在项目中的位置: 

 部署项目,访问native/native action时,当本地环境是中文时,页面显示如下:

 当本地环境是英文时,页面显示如下:

 从上面的结果也可以说明:当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。

 

3、Action范围的国际化

    我们也可以为某个action单独指定资源文件,方法如下:Action类所在的路径,放置ActionClassName_language_country.properties资源文件,ActionClassNameaction类的简单名称。

当查找指定key的消息时,系统会先从ActionClassName_language_country.properties资源文件查找,如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包。如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的资源文件中寻找。

 

      同样的现在我们为应用添加包范围的两个资源文件:

      第一个存放中文:NativeAction_zh_CN.properties

      内容为:message=action范围:您好,欢迎来到中国!

      第二个存放英语(美国):NativeAction_en_US.properties

      内容为:message=action : Hello, welcome to China!

 

      配置文件:

 

<?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>
	<!-- value的值为资源文件的基本名  -->
	<constant name="struts.custom.i18n.resources" value="i18n" />
	
	<package name="user"  namespace="/native" extends="struts-default">  
        <action name="native" class="com.struts.action.NativeAction">  
            <result name="success">/welcome.jsp</result>  
        </action>    
    </package> 
</struts>

 

 资源文件在项目中的位置:  
 

 部署项目,访问native/native action时,当本地环境是中文时,页面显示如下:

 当本地环境是英文时,页面显示如下:

从上面的结果与第二点中结论也可以说明:当查找指定key的消息时,系统会先从ActionClassName_language_country.properties资源文件查找,如果没有找到对应的key,然后沿着当前包往上查找基本名为package 的资源文件,一直找到最顶层包。如果还没有找到对应的key,最后会从常量struts.custom.i18n.resources指定的资源文件中寻找。  

 

输出带占位符的国际化信息:

       更改上面全局范围的国际化资源文件的内容,如下:

       i18n_zh_CN.properties-->message=您好,{0} 欢迎来到中国  {1}!

       i18n _en_US.properties -->message=Hello, {0} welcome to China {1}!

 

在JSP页面中可以用标签<s:param></s:param>为占位符注入值,如:

<%@ 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>欢迎页面</title>
</head>
<body>
	<s:text name="message">
		<s:param>jetty</s:param>
		<s:param>study</s:param>
	</s:text>
</body>
</html>

  部署项目,访问welcome.jsp页面,当本地环境是中文时,页面显示如下:

当本地环境是英文时,页面显示如下:

 

在Action中访问国际化资源:

          1)没有占位符

        在Action中可以继承ActionSupport,使用以下方法获取国际化资源文件中的信息

this.getText("资源文件中的key值");

          2)有占位符

          在Action中可以继承ActionSupport,使用以下方法获取国际化资源文件中带占位符的信息

// 该方法的第二个参数可以是数组或者是List,数组或List为给占位符注入的值
this.getText("资源文件中的key值", new String[]{}/*List*/);

 

  • 大小: 1.9 KB
  • 大小: 1.5 KB
  • 大小: 7.7 KB
  • 大小: 9.3 KB
  • 大小: 2.4 KB
  • 大小: 2 KB
  • 大小: 10.2 KB
  • 大小: 2.6 KB
  • 描述: action英文
  • 大小: 1.7 KB
  • 大小: 2.5 KB
  • 大小: 2 KB
分享到:
评论

相关推荐

    struts2入门实例1

    struts2 最新的入门实例 我自己总结的 呵呵,欢迎提出宝贵的意见 1.Struts2_01_login 对应登录。。 login.jsp---------------------------------------html标签的登陆页面 login_struts2.jsp--------------...

    struts2入门实例2 经典入门必备

    错误信息提示------国际化处理-----properties 13.Struts2_05Core_include 14.Struts2_06tags struts标签 15.Struts2_07i18n 国际化 16.Struts2_08interceptor 拦截器 17.Struts2_09up&down 上传和...

    struts2帮助文档

    struts2中的国际化 struts2转化器 struts2实现表单数据校验 struts2的基石-拦截器 struts2中实现IOC struts2中实现文件上传 struts2中实现CRUD struts2中的OGNL struts2的新表单标志的使用 struts2与AJAX一 struts2...

    Struts2入门教程(全新完整版)

    1.action级别下的国际化 47 2.配置package的资源文件 48 3.app级别的资源文件 48 4.使用资源文件的原理 49 5.选择使用资源文件 49 八、验证机制 50 1.基于手工编码的校验 50 简析校验流程: 53 2.基于XML配置形式的...

    struts2入门实例4 经典入门必备

    错误信息提示------国际化处理-----properties 13.Struts2_05Core_include 14.Struts2_06tags struts标签 15.Struts2_07i18n 国际化 16.Struts2_08interceptor 拦截器 17.Struts2_09up&down 上传和...

    struts2入门实例3 经典入门必备

    错误信息提示------国际化处理-----properties 13.Struts2_05Core_include 14.Struts2_06tags struts标签 15.Struts2_07i18n 国际化 16.Struts2_08interceptor 拦截器 17.Struts2_09up&down 上传和...

    struts2入门教程

    ·Struts2国际化(i18n)您的应用程序 ·Struts2.0转换器(Converter) ·Struts 2.0中实现表单数据校验(Validation) ·拦截器(Interceptor) ·Struts 2中实现IoC ·Struts 2中实现文件上传 ·Struts 2中的...

    [Struts 2权威指南--基于WebWork核心的MVC开发(高清完整版) 1/12

    第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 Struts 2的国际化入门,...

    struts2的国际化

    struts2的国际化入门

    struts入门[文字版][中文].

    Struts入门 作者:余立非 本书为入门者准备的,其中讲述了Struts的一些基础东西。请读者首先能建立一个Struts的开发环境,其次了解Struts基础的...第九章 Struts的国际化 第十章 Plug-in 第十一章 Struts-Config文件

    struts入门及验证框架及国际化

    struts入门相关知识和代码,及validator验证框架,以及国际化的一些知识。

    Struts2学习文档,Struts入门学习资料

    Struts2学习文档,Struts入门学习资料,包括(struts-xml,action,上传下载,监听器,拦截器,验证,类型转换,国际化等等)

    轻松入门之struts2

    1、struts2入门 2、struts2晋级 3、struts2核心概念 4、表单验证 5、国际化实现 6、拦截器浅析 7、探讨IOC模式 8、struts2标签 9、表达式OGNL 10、上传下载 11、视图浅析 12、集成AJAX 13、集成HIBERNATE 14、集成...

    struts2入门实例

    struts2入门实例,资源文件国际化,validate()和框架两种方法的验证.页面常用标签等

    struts2入门及提高

    Struts2的拦截器 Struts2整合JSF Struts2整合Ajax Struts2的国际化(Internationalization) Struts2标签库 Struts2整合Hibernate及Spring

    Struts2 in action中文版

    第11章 理解国际化 240 11.1 Struts 2框架和Java i18n 241 11.1.1 使用ResourceBundle和Locale取得本地化文本 241 11.1.2 Struts 2如何解决本地Java对i18n支持的问题 243 11.2 Struts 2 i18n示例 244 11.2.1 Struts ...

    struts2教程 ppt

    struts2教程 ppt 标签 国际化 精华教程 struts入门教程

    struts2.1.8 入门例子

    struts2.1.8 入门例子 struts 例子 国际化 验证 拦截器

    struts入门电子书

    Struts与MVC框架介绍; 使用Struts框架开发第一个应用; Struts核心组件介绍; Struts配置;...开发国际化的Struts应用; Struts框架中的异常处理; 在Struts框架中使用数据库连接池; Struts自定义标记的使用

Global site tag (gtag.js) - Google Analytics