`

Struts2国际化详解

阅读更多

Struts2国际化:
 1,国际化分为三类:全局的,包级别的,类级别的。


  全局的:
   1,在struts.xml中的<constant name="struts.custom.i18n.resources" value="message"></constant>指定baseName
   国际化文件名为:baseName_语言名_国家名.properties(如:message_zh_CN.properties)
   2,全局的国际化资源文件放在src下面。


  包级别的:
   1,包级别的国际化资源文件放在该包下面。
   2,命名规则为:package_语言名_国家名.properties(如:package_zh_CN.properties)
      其中package不变,不是指的是包名,每个包的国际化文件命名都这样。
  
  类级别的:
   1,与该类放在同一目录中
   2,命名规则为:类名_语言名_国家名.properties(如:RegisterAction_zh_CN.properties)
   
  若同一key 在上面三个国际化文件中都为value值则:(优先级)类级别的>包级别的>全局的
  
 2,在jsp中访问国际化资源文件
  <!-- name为国际化文件中的key -->
  <s:text name="hello">
   <!-- 若该国际化文件的value中有{0}则可用下面的标签把参数传进去 -->
   <s:param>mengya</s:param>
  </s:text>
  
  <!-- 指定特定的国际化文件,name为全局国际化文件的baseName -->
  <s:i18n name="temp">
   <!-- 下面的<s:text>标签与上面的用法一样 -->
   <s:text name="hello">
    <s:param>mengya</s:param>
   </s:text>
  </s:i18n>
  
  表单国际化:
   1,theme不能为simple如:<s:form action="register">(默认的theme不是simple)
   2,使用key如:<s:textfield name="username" key="" id="usernameId"></s:textfield>
  
 3,在Action中访问国际化资源文件,该Action继承了ActionSupport类
  this.getText("username.invalid")
  若该key对应的value需要参数则:
  this.getText("username.invalid",new String[]{username})
  或
  List list = new ArrayList();
  list.add(username);
  this.getText("username.invalid",list)
  如:
  if (null == username || username.length() < 6 || username.length() > 10)
  {
   List list = new ArrayList();
   list.add(username);
   this.addActionError(this.getText("username.invalid",new String[]{username}));
  }
  该国际化资源文件中的key和value为:
  username.invalid = \u7528\u6237\u540d "{0}" \u586b\u5199\u4e0d\u6b63\u786e
 
 4,在输入校检访问国际化资源文件,使用<message key="..."></message>
  <field-validator type="requiredstring">
   <param name="trim">true</param>
   <message key="username.invalid"></message>
  </field-validator>

 

 

Java对国际化的支持:

 

/**
 * 显示机子上的所有国家名,国家代码,语言名,语言代码
 *
 * @author 张明学
 *
 */
public class Test1 {

 public static void main(String[] args) {
  Locale[] locale = Locale.getAvailableLocales();
  for (Locale loc : locale) {
   // 国家名:国家的代码
   System.out
     .println(loc.getDisplayCountry() + ":" + loc.getCountry());
  }
  System.out.println("------------");
  for (Locale loc : locale) {
   // 语言名:语言代码
   System.out.println(loc.getDisplayLanguage() + ":"
     + loc.getLanguage());
  }
 }

}

 

import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 根据不同的Locale出查找不同的properties从面得到不同的值
 *
 * @author 张明学
 *
 */
public class Test2 {

 public static void main(String[] args) {
  // 本机默认的Locale
  Locale locale = Locale.getDefault();
  // 英文的Locale
  // locale=Locale.US;
  ResourceBundle buudle = ResourceBundle.getBundle("baseName", locale);

  String result = buudle.getString("hello");
  System.out.println(result);
 }
}

 

import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;

/**
 * 动态赋值properties文件中的一些值
 *
 * @author 张明学
 *
 */
public class Test3 {

 public static void main(String[] args) {
  Locale locale = Locale.getDefault();

  ResourceBundle buudle = ResourceBundle.getBundle("baseName", locale);

  String value = buudle.getString("hello2");

  String result = MessageFormat.format(value, new Object[] { "梦娅" });

  System.out.println(result);
 }

}

  • Struts2_11.rar (9.1 KB)
  • 描述: Java国际化支持实例
  • 下载次数: 67
2
0
分享到:
评论

相关推荐

    Struts2国际化

    ### Struts2国际化详解 #### 一、引言 随着全球化的不断推进,软件系统越来越多地需要支持多种语言和地区设置,以满足不同国家和地区用户的使用习惯。因此,国际化(Internationalization,简称i18n)成为了现代...

    struts1.2 国际化

    ### Struts 1.2 国际化详解 #### 一、引言 在软件开发过程中,为了满足不同地域和语言环境下的用户需求,软件国际化(Internationalization, 简称 I18N)和本地化(Localization, 简称 L10N)成为了一项重要的技术...

    Struts2的常量详解

    Struts2 的常量详解 Struts2 框架中有许多重要的常量,它们负责控制着 Struts2 的行为和配置。下面我们将对 Struts2 中的一些常量进行详细的解释和分析。 1. struts.configuration struts.configuration 属性指定...

    struts2常量设置详解 struts2常量设置详解

    **描述**:指定Struts2进行国际化资源文件编码格式。 **值**:如`UTF-8`。确保在处理多语言资源时能够正确显示各种字符集的内容,避免乱码问题。 ##### 4. `struts.objectFactory` **描述**:指定Struts2使用的...

    Struts2属性文件详解

    指定了Struts 2应用所需的国际化资源文件,如果有多个国际化资源文件,多个文件名间以英文逗号`,`分隔。 #### struts.diSPAtcher.parametersWorkaround 针对某些Java EE服务器不支持`HttpServletRequest`调用`...

    struts2框架详解

    Struts2框架详解 Struts2是Java Web开发中的一款广泛应用的开源MVC框架,它构建在Apache Struts 1的基础上,提供了更为强大的功能和更好的灵活性。Struts2旨在简化Web应用开发,通过将表现层与业务逻辑层解耦,提高...

    struts2 properties配置详解

    自己学会的,保存的学习网页,给大家分享 struts2 国际化

    struts2深入详解源码1-5章

    第五章可能进一步讲解Struts2的高级特性,如国际化、插件机制、Action的组合以及Struts2与其他框架(如Spring、Hibernate)的整合。国际化支持多语言环境,让应用更具有普适性;Action的组合允许将复杂的业务逻辑...

    struts2标签用法详解

    Struts2标签库是基于JavaServer Pages (JSP) 标准标签库(JSTL)的扩展,它包含了一系列与Action、结果、表单、国际化等相关的标签。这些标签使得开发者可以将业务逻辑与展示逻辑分离,从而更专注于页面的呈现。 二...

    Struts2开发详解

    Struts2支持多语言的国际化功能,通过资源包(properties文件)来管理不同语言的文本。开发者可以根据用户的浏览器设置或手动选择,提供相应的语言版本。 **5. 模板技术** Struts2支持FreeMarker和Velocity等模板...

    struts2标签库详解(非常不错)

    这个“Struts2标签库详解(非常不错)”的资源应该包含了对Struts2所有标签的详细介绍,以及相关的API文档。 Struts2标签库的核心在于提供了一种声明式编程的方式,使得开发者可以更专注于业务逻辑,而不是繁琐的JSP...

    Struts 2 properties文件详解

    ### Struts 2 properties文件详解 #### 概述 `struts.properties` 文件是Struts 2框架中的核心配置文件之一,它包含了Struts 2框架运行时所需的一系列配置属性。这些属性决定了Struts 2的行为特征以及与其他组件如...

    Struts2 深入详解课本代码

    9. **国际化与本地化**:Struts2支持多语言环境,可以通过资源包进行文本的国际化,方便不同地区的用户使用。 10. **插件体系**:Struts2有一个强大的插件架构,允许开发者扩展其功能,例如,Spring插件可以集成...

    Struts2标签库详解

    四、Struts2标签库的国际化与主题 Struts2支持多语言环境,可以通过配置资源文件实现国际化。同时,提供多种主题样式,如xhtml、simple、css_xhtml等,以改变标签的外观和布局。 五、Struts2标签库与其他框架的...

    struts2的struts.properties配置文件详解

    12. struts.i18n.encoding:这是国际化信息的内码,Struts2用于处理国际化信息。 13. struts.i18n.reload:这是一个布尔值,用于确定是否自动加载国际化信息。如果设置为true,Struts2将自动加载国际化信息。 14. ...

    Struts2知识点详解

    11. **国际化(I18N)**:Struts2支持多语言环境,通过资源包(Properties文件)管理不同语言的文本。 12. **测试支持**:Struts2提供了MockStruts2工具,方便开发者对Action进行单元测试。 通过深入学习这些知识...

Global site tag (gtag.js) - Google Analytics