`

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 properties配置详解

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

    Struts2开发详解

    Struts2开发详解,讲述Struts2开发中的详细配置,已经它的验证,国际化等。

    Struts2属性文件详解

    该属性指定Struts 2应用所需要的国际化资源文件,如果有多份国际化资源文件,则多个资源文件的文件名以英文逗号(,)隔开. struts.diSPAtcher.parametersWorkaround 对于某些Java EE服务器,不支持HttpServlet Request...

    Struts2的国际化支持及JDK对国际化的支持深入详解

    Struts2的国际化支持及JDK对国际化的支持深入详解,是一段视频,讲解细致

    Struts2实现国际化+天气webservice接口+股票webservice接口

    Struts2实现国际化+天气webservice接口+股票webservice接口,源代码可直接使用,用MyEclipse直接导入

    struts2 详解文档

    配置国际化全局资源文件、输出国际化信息 输出带有占位符的国际化信息 配置包范围国际化资源文件 配置Action范围国际化资源文件 ognl表达式 Struts 2常用标签解说 使用标签防止表单重复提交 Struts 2+...

    IBM Struts2培训PPT.7z

    IBMStruts2培训PPT (大全集) 主讲:刘雷 完整实用 ...第六章:struts2国际化.ppt 第七章:Struts2验证机制.ppt 第八章:struts2文件上传下载.ppt 第九章:struts2拦截器.ppt + Struts2开发详解.ppt

    Struts课堂笔记.rar--struts2的struts.properties配置文件详解

    加载附加的国际化属性文件(不包含.properties后缀) struts.custom.properties Location of additional configuration properties files to load 加载附加的配置文件的位置 struts.devMode Whether Struts ...

    Struts所有标签详解

    里面包括&lt;html&gt;&lt;bean&gt;&lt;logic&gt;&lt;tiles&gt;&lt;nested&gt;&lt;br&gt;五组标签库的详细... 另外还有国际化(文字国际化/图片国际化)、 表单验证,以及验证框架 例子是用JBuilder2006做的 绝对经典!!!!!!!!!!!!!

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

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

    struts2 ppt 教程 十章

    第一章:认识体验Struts 2 第二章:struts2架构剖析 第三章:struts2配置详解 ...第六章:struts2国际化 第七章:struts2验证 第八章:struts2文件上传下载 第九章:struts2拦截器 第十章:struts2类型转换

    struts2详解

    对struts2的内部详细讲解 例如:struts xml struts2的action使用 以及国际化 验证等技术

    Struts2高级应用

    Struts2Ajax刷新,验证框架,国际化详解。

    Struts2+Spring+Hibernate3.2+整合文档及事例程序.zip

    properties文件即i18n国际化多国语言版的用法,struts2前台校验,对输入的数据进行验证validators struts2 OGNL 表达式详解 struts2 #,*,%

    低清版 大型门户网站是这样炼成的.pdf

    2.5.3 自定义国际化struts 2校验错误消息 92 2.5.4 struts 2的自带校验器 92 2.6 struts 2的拦截器 94 2.6.1 struts 2内建拦截器介绍 95 2.6.2 定义和使用拦截器栈 97 2.6.3 使用自定义拦截器 98 2.7 小结 100...

    struts框架资料

    很好的struts框架资料,包括java web编程基础、struts入门、struts详解、struts国际化和数据验证

    Java Web整合开发王者归来(JSP+Servlet+Struts+Hibernate+Spring)

    第3篇为高级篇,内容包括JSTL标签库的使用、如何自定义标签、资源国际化、数据库概述、JDBC详解、XML概述等;第4篇为Struts框架篇,内容不仅包括Struts 1.x的内容,也包括Struts 2.x中的内容;第5篇为Hibernate框架...

    应付struts2考试有这个就够了.docx

    包含过滤器,国际化等所有的代码以及详解,如web.xml,struts.xml,java包,jsp包,struts考试有这个就够了

    ActionForward和国际化

    详解Struts2的国际化!ActionForward的使用 ActionForward的默认行为是转发,如果想重定向,需要在标签中配置 redirect="true" 比如: &lt;forward name="login" path="/login.jsp" redirect="true"/&gt;

Global site tag (gtag.js) - Google Analytics