`
在水伊方
  • 浏览: 111070 次
  • 性别: 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-blank

    8. **国际化(i18n)**:Struts2提供对多语言的支持,可以在资源文件中定义不同语言的文本,方便应用的国际化。 9. **异常处理**:通过全局异常处理器,可以统一处理应用中的异常,提高代码的可维护性。 通过深入...

    Struts2-入门学习

    7. **国际化**:了解如何实现应用的多语言支持。 8. **测试**:使用JUnit进行Action的单元测试,确保代码的正确性。 9. **最佳实践**:学习和遵循Struts2的最佳实践,如使用注解减少XML配置,使用拦截器实现通用...

    struts2-docs

    8. **国际化(Internationalization, i18n)**:Struts2内置对国际化支持,允许根据用户的语言设置显示不同版本的内容。 9. **异常处理**:Struts2提供了全局的异常处理机制,可以统一处理应用中的异常情况。 10. ...

    struts2-----之一

    7. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包(properties文件)实现内容的国际化。 8. **异常处理**:Struts2提供了一套完整的异常处理机制,可以统一处理程序中的运行时异常,提高代码的健壮性...

    starting-struts2-chinese.rar

    9. **国际化与本地化**:Struts2支持多语言环境,通过资源包(properties文件)来实现应用的国际化和本地化。 10. **Struts2与Spring的整合**:Struts2可以方便地与Spring框架集成,通过Spring插件实现依赖注入,...

    struts2-docs部分

    10. **国际化与本地化**:Struts2支持多语言环境,通过资源文件实现消息的国际化。 11. **主题和皮肤**:Struts2允许自定义视图的外观,可以通过更换主题和皮肤来改变页面样式。 12. ** strut2-docs 中的具体文档*...

    Struts入门--按步骤一步步来就可以了

    ### Struts 入门知识点详解 #### 一、Struts框架简介 ...对于更深入的学习,建议继续探索Struts的高级特性,例如国际化支持、异常处理机制等。同时,掌握Struts框架将有助于开发者构建更加高效、可维护的Web应用。

    struts-2.3.16.1-docs.zip

    2. **使用文档**:这部分详细介绍了如何在实际项目中使用Struts2,包括配置文件的编写(struts.xml)、动作类的创建、结果映射、拦截器的使用、国际化、异常处理等。 3. **参考手册**:这是对Struts2框架所有组件和...

    struts2项目使用的初级常用jar包

    - `xwork-core.jar`:XWork是Struts2的前身,其核心库为Struts2提供了许多基础功能,如类型转换、国际化、异常处理等。 4. **其他辅助库:** - `commons-fileupload.jar`:Apache Commons FileUpload库,用于处理...

    starting-struts2-chinese

    - **标签库**:Struts2提供了丰富的标签库,支持国际化功能。 #### 六、其他技术集成 Struts2不仅限于简单的Web应用开发,还可以与其他技术进行深度集成,如: - **页面修饰和布局**:通过自定义布局实现统一的页面...

    struts2入门例子

    实践这个例子,你可以了解到如何设置一个简单的Struts2应用,从而为进一步学习更复杂的特性如国际化、文件上传、异常处理等奠定基础。 总之,Struts2是一个强大的MVC框架,它的核心在于`struts.xml`配置文件,通过...

    struts2入门 struts2简介-第一个程序

    Struts2有许多插件,如i18n国际化插件、Freemarker模板引擎插件、Tiles布局插件等,这些插件可以扩展Struts2的功能,满足不同需求。 **10. 整合其他技术** Struts2可以方便地与Spring、Hibernate、MyBatis等其他...

    Struts2 的入门简单的hello

    此外,Struts2还有许多高级特性,如OGNL表达式、拦截器、国际化、插件系统等,这些都是在实际项目中非常实用的功能。 总之,“Struts2 的入门简单的hello”是一个很好的起点,帮助开发者快速理解MVC架构和Struts2的...

    Struts2入门教程.pdf

    ### Struts2入门教程知识点概览 #### 一、Struts2框架简介 - **Struts2起源**:Struts2并非一个全新的Web框架,而是建立在WebWork框架设计理念之上,融合了Struts1的优点而形成的一个框架。可以说,它是Struts1与...

    Struts2入门demo

    9. **国际化(i18n)**:Struts2支持多语言,通过资源文件(如`messages.properties`)可以轻松实现应用程序的国际化。 10. **插件体系**:Struts2拥有丰富的插件库,如Freemarker或Velocity作为视图层模板引擎,...

    Struts2视频教程

    - **国际化**:通过配置资源文件实现多语言支持,增强应用的可用性。 - **异常处理**:配置异常拦截器,实现全局异常捕获和处理,提升用户体验。 - **文件上传与下载**:Struts2内置了对文件上传的支持,可以轻松...

    struts2培训PPT[F]

    6. **Struts 2 - 6.swf** - 最后一部分可能讨论了更高级的主题,如Struts2与Spring的集成,国际化(i18n)支持,动态方法调用(Dynamic Method Invocation),以及如何调试和优化Struts2应用。 通过这六个部分的...

Global site tag (gtag.js) - Google Analytics