- 浏览: 415111 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
夜行侠:
基于微博数据检测的Solr实战开发课程观看地址:http:// ...
SolrCloud之搭建SolrCloud集群 -
夜行侠:
基于微博数据检测的Solr实战开发课程观看地址:http:// ...
SOLR使用手册之优化及拓展 -
夜行侠:
基于微博数据检测的Solr实战开发课程观看地址:http:// ...
SOLR拼写检查相关 -
houzhanshanlinzhou:
写的不错,非常详细
SOLR使用手册之查询语法 -
王庆波-行:
期待!……
redis安装使用-终极篇(分布式、集群配置)
Struts2I18n Struts2国际化 1.定义properties文件¶资源文件查找顺序¶JAVA国际化 如果系统同时存在资源文件、类文件,系统将以类文件为主,而不会调用资源文件。
对于简体中文的Locale,ResourceBundle搜索资源的顺序是:
(1)baseName_zh_CN.class
(2)baseName_zh_CN.properties
(3)baseName_zh.class
(4)baseName_zh.properties
(5)baseName.class
(6)baseName.properties
/* Struts2找不到对应语言的配置文件时,会先找系统语言对应的配置文件,再找不到才使用baseName.properties */ 国际化分为三类:全局的,包级别的,类级别的¶全局的: 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:param><s:property value="firstName"/></s:param>
</s:text>
<s:property value="%{getText('customer.contact')}"/>
传参数 <s:property value="%{getText('customer.contact','sh')}"/>
定义变量,加var属性 <s:text name="greetings" var="msg"/>
<s:property value="#msg"/>
<!-- 指定特定的国际化文件,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.或者使用getText方法<s:textfield name="username" label="%{getText('customer.name')}"/> 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>
5.动态改变语言¶只有在url传入request_locale=en_US就可以指定为en_US的语言 <a href="${pageContext.request.contextPath}/i18n/i18nAction?request_locale=en_US">English</a>
6.使用类来代替properties文件¶//继承ListResourceBundle实现getContents方法 public class MyCustomResourceBundle extends ListResourceBundle {
public Object[][] getContents() {
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) < 12) {
return contents1;
} else {
return contents2;
}
}
static final Object[][] contents1 = {
{ "greetings", "中午好 {0}" }, { "farewell", "再见" } };
static final Object[][] contents2 = {
{ "greetings", "你好 {0}" }, { "farewell", "再见" } }; }
//en对应的字符串 public class MyCustomResourceBundle_en extends ListResourceBundle {
public Object[][] getContents() {
if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) < 12) {
return contents1;
} else {
return contents2;
}
}
static final Object[][] contents1 = {
{ "greetings", "Good morning {0}" },
{ "farewell", "Good bye" } };
static final Object[][] contents2 = {
{ "greetings", "Hello {0}" },
{ "farewell", "Good bye" } };
}
//jsp中使用 <s:i18n name="com.resourcebundle.MyCustomResourceBundle">
<s:text name="greetings">
<s:param>Jon</s:param>
</s:text>.
<s:text name="farewell"/>
</s:i18n>
|
发表评论
-
spring profile 配置不同的环境
2014-05-14 16:42 4918如果在开发时进行一些数据库测试,希望链接到一个测试的数据库, ... -
spring 下载与配置2(常见问题)
2014-04-29 11:36 0web.xml中url-pattern的3种写法 (切 ... -
spring 下载与配置
2014-04-23 15:37 13251.下载 地址发布页: http://docs ... -
memcached缓存服务器安装与使用
2013-08-29 10:00 976简述 它可以应对任意多个连接,使用非阻塞的网络IO。它的 ... -
spring注解相关知识
2013-03-28 16:06 20921.@Resource和@Autowired 的区别 @R ... -
spring整合quartz并持久化
2013-03-28 15:44 61445spring整合quartz有两种方式: 一. ... -
spring Quartz cron表达式
2011-09-23 15:24 3030Cron表达式是一个字符串,字符串以5或6个空格隔开, ... -
struts2 类型转换器and国际化and主题
2011-03-21 16:09 1134在默认的拦截器栈中包含了名为conversionEr ... -
struts2使用要点
2011-03-21 16:08 12151. 在一个Action中包含多个处理逻辑,但是不管 ... -
struts2返回类型总结
2011-03-21 16:07 1062chain 用来处理Action链(ac ... -
struts2标签iterator
2011-03-21 16:05 1092struts2标签iterator iterato ... -
struts2 ongl
2011-03-21 16:05 1075OGNL is the Object Graph ... -
事务传播特性&事务隔离级别
2011-03-21 16:04 4240事务传播特性了解事务的几种传播特性 ... -
Spring获取bean几种方式
2011-03-21 16:03 1155方法一:在初始化时保存ApplicationContex ... -
spring 注入方式
2011-03-21 16:02 1043平常的java开发中,程序员在某个类中需要依赖其它类的方法 ... -
spring Aop概念
2011-03-21 16:01 1361AOP概念 切面(Aspect) 与类很 ... -
open session in view
2011-03-21 16:00 1113在使用hibernate时 在业务层关闭sess ... -
Hibernate锁
2011-03-21 15:59 5569锁 业务逻辑的实现过程中,往往需要保证数据访问的排他 ... -
hibernate缓存机制
2011-03-21 15:58 1036hibernate 一级缓存:(缓存的是实体对象 ...
相关推荐
在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...
在“Struts2国际化Demo”中,我们主要探讨的是如何利用Struts2框架实现应用的多语言支持,即国际化(i18n)功能。国际化是一种设计方法,使得软件能够根据不同地区的语言和文化习惯进行调整,使得全球用户都能无障碍...
### STRUTS2国际化的问题 #### 一、Struts2国际化的概述 Struts2作为一个流行的Web应用框架,为了满足全球用户的使用需求,提供了一系列国际化(Internationalization, 简称I18N)的支持。这包括了如何在配置文件...
总的来说,这个项目提供了一个基础的Struts2应用实例,展示了如何实现国际化、使用Struts2标签库,以及创建简单的用户注册和登录功能,尽管它并不涉及实际的数据存储。对于学习和理解Struts2框架的运作机制,这是一...
Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解
Struts2的国际化功能,简称i18n,允许应用程序根据用户的语言和地区提供相应的界面和信息,无需修改核心代码。这一特性使得软件更具有全球化的适应性,满足不同文化和语言背景的用户需求。 **5.1 Struts2国际化原理...
Struts2提供了一个默认的国际化资源文件`struts2-i18n.properties`,其中包含了框架自身的提示信息。开发者可以根据需要覆盖这些默认值,或者为特定的语言创建自定义的资源文件。 4. **Action中的国际化** 在...
在Struts2中,实现国际化是一项重要的功能,使得开发者可以为全球用户提供符合他们本地习惯的界面。 首先,国际化的核心是资源文件,通常命名为`properties`格式,如`messages.properties`。这些文件存储了应用中的...
Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...
Struts2是一个流行的Java web框架,它提供了强大的国际化支持,帮助开发者创建多语言的应用程序。在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们...
在“struts2国际化测试”这个主题中,我们将探讨如何在Struts2框架下实现应用程序的国际化功能。 首先,国际化(i18n,i代表第9个字母n,18是n到i的字母数,表示国际化)是使软件能够适应不同语言和文化背景的重要...
struts2国际化MyEclipse开发struts2国际化MyEclipse开发童叟无欺