- 浏览: 476840 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (501)
- java基础 (45)
- struts2 (22)
- WebService (9)
- JavaScript (21)
- Java多线程 (37)
- Hibernate (5)
- Spring (31)
- 数据库 (4)
- 软件设计 (1)
- J2ee (8)
- oracle (2)
- Linux (41)
- Hadoop (1)
- Java集合 (3)
- 设计模式 (3)
- 高并发 (1)
- JVM (15)
- xml (2)
- 数据库事务 (3)
- 动态代理 (1)
- tomcat (9)
- 其他 (4)
- DNS域名 (3)
- CDN (2)
- javaapi (1)
- 编码问题 (6)
- CSS样式 (1)
- TCP学习 (3)
- Java IO (6)
- 常见异常问题 (1)
- 网络编程 (1)
- 开发工具 (5)
- Maven (10)
- ibatis (12)
- Velocity (8)
- Jquery (11)
- HTTP (9)
- 中间件 (3)
- 软件管理 (2)
- Html (2)
- Redis (3)
- 服务器 (1)
- 分布式文件系统 (1)
- 异常 (1)
- 杂谈 (1)
- ICE (4)
- cxf (1)
- Apache ActiveMQ (1)
- 好文 (1)
- Json (1)
- junit (2)
- JMS (1)
- java工具 (1)
- memcache (5)
- 加密解密 (1)
- powerdesigner (3)
- Enterprise Architect (1)
- ide (0)
- hessian (3)
- svn (1)
- xstream (1)
- idea (12)
- HttpClient (2)
- solr (4)
- lucene (2)
- 正则 (2)
- 商品设计 (1)
- poi (1)
- nginx (8)
- java基础;Java集合类 (1)
- javassist (1)
- JMeter (1)
- springmvc (1)
- Java对象序列化 (2)
- java nio (4)
- RandomAccessFile (1)
- socket (1)
- netty (3)
- 博客 (1)
- Spring AOP (7)
- mysql (10)
- 远程调用 (2)
- https (3)
- 加密 (3)
- sql (1)
- git (1)
- webx (1)
- eclipse (1)
- 上传下载 (2)
- log4j (4)
- Mac 系统使用 (6)
最新评论
-
wanxiaotao12:
aswang 写道总结的不错,
正在读《java并发编程实战 ...
Java并发编程实战-学习笔记 -
aswang:
总结的不错, 正在读《java并发编程实战》,看到其中的不变性 ...
Java并发编程实战-学习笔记 -
lianhan3344:
感谢博主分享!!!!
深入剖析Tomcat How+Tomcat+Works中文367页.pdf -
vict0323:
真的是酱紫么?求真相
Spring 实际开发项目中, 是否要default-autowire="byName"
转:http://callan.iteye.com/blog/186014
每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化
首先在struts.properties文件中加入以下内容:
struts.custom.i18n.resources=messageResource
或在struts.xml中加入
<constant name="struts.custom.i18n.resources" value="messageResource"></constant>
资源文件的命名格式: 名称_语言代码_国家代码. Properties
如果创建中文和英语国际化,那么资源文件名称为
messageResource_zh_CN.properties和messageResource_en_US.properties
1. jsp页面的国际化
通过使用标签<s:text name="label.helloWorld"/>输出国际化
label.helloWorld为资源文件中定义的key
在messageResource_en_US.properties加入以下内容
label.hello=hello {0}
label.helloWorld=hello,world
在messageResource_zh_CN.properties加入以下内容
label.hello=你好 {0}
label.helloWorld=你好,世界
(1). <s:text name="label.helloWorld"/>
<s:property value="%{getText('label.helloWorld')}"/>
上面两个都为输出一个hello word的两种表示
<s:textfield name="name" key="label.helloWorld"/>
<s:textfield name="name" label="%{getText('label.helloWorld')}"/>
显示一个文本框,文本框的标题进行国际化
(2). 使用<s:i18n>标签指定从某个特定的资源文件中取数据
<s:i18n name="messageResource">
<s:text name="label.helloWorld"></s:text>
</s:i18n>
指定在从messageResource取资源
(3).
<s:text name="label.hello">
<s:param>callan</s:param>
</s:text>
使用带参数的资源.<s:param>可以替换label.hello=hello {0}中的{0}
2. Action的国际化
Action的国际化主要是通过getText(String key)方法实现的
getText(String aTextName, String defaultValue), 也可以带参数, 参数的形式可以是String, List, String[]
- public String execute() throws Exception {
- // getText(String) string为key
- String str1 = getText("label.helloWorld");
- System.out.println(str1);
- // 带参数的
- String str2 = getText("label.hello",new String[]{"fjf"});
- System.out.println(str2);
- // 与上一种实现一样
- List l = new ArrayList();
- l.add("callan");
- String str3 = getText("label.hello",l);
- System.out.println(str3);
- return SUCCESS;
- }
public String execute() throws Exception { // getText(String) string为key String str1 = getText("label.helloWorld"); System.out.println(str1); // 带参数的 String str2 = getText("label.hello",new String[]{"fjf"}); System.out.println(str2); // 与上一种实现一样 List l = new ArrayList(); l.add("callan"); String str3 = getText("label.hello",l); System.out.println(str3); return SUCCESS; }
3. 参数化国际化(带参数的), 在properties文件中
在messageResource_en_US.properties加入以下内容
userName=userName
userName.required=${getText('userName')} is required
在messageResource_zh_CN.properties加入以下内容
userName=用户名
userName.required=${getText('userName')} 不能为空
在Action中
String str4 = getText("userName.required");
System.out.println(str4);
userName.required=${getText('userName')}会取国际化的用户名
4. 使用校验框价时,提示信息可以国际化
<field name="userName">
<field-validator type="requiredstring">
<message key=”userName.required”> </message>
</field-validator>
</field>
国际化资源文件分为三种级别
(1) 全局资源文件,可以被整个应该程序引用,也就是struts.custom.i18n.resources=messageResource指定的文件
(2) 包级资源文件,每个包的根目录下可以新建资源文件,仅被当前包中的类访问.文件名格式为:package_语言代码_国家代码.
(3) Action级资源文件,仅被当前Action引用,名称为action名_语言代码_国家代码
查找顺序为从小范围到大范围, Action级优先级最大
发表评论
-
struts2对请求参数的处理
2013-10-10 18:31 652struts2对请求参数的处理 struts2 拦截 ... -
struts2中取得文件的绝对路径的方法
2013-09-30 16:44 1510方法1: [java] view plainc ... -
struts2的ValueStack
2013-06-21 01:03 608Struts2 ValueStack & Acti ... -
struts2中ActionContext应用
2013-06-20 22:38 458struts2中ActionContext应用 -
Struts2源码分析--请求处理
2013-05-12 23:18 686Struts2架构图 请求首先通过Fi ... -
Struts2的运行流程
2013-05-12 23:08 8243.2 Struts2的运行流程 3.2.1 运行 ... -
WebWork框架原理
2013-05-12 12:34 997WebWork的三个关键部分 1、 Actions ... -
Struts2技术内幕-学习
2013-05-05 23:38 12611、MVC只是概念, 我们 ... -
Ognl学习
2013-05-05 16:21 787OGNL框架的使用入门(一) OGNL框架的使用入 ... -
struts2 值栈
2012-12-20 09:48 840值栈(ValueStack)是struts2中的一个重要的 ... -
locale 详解
2012-12-16 00:04 772转:http://daimajishu.iteye.com/b ... -
Struts2 Result-type(封装Action层到View层的跳转逻辑)
2012-12-11 09:14 745http://www.blogjava.net/jzone/a ... -
struts2中常用Result类型的用法
2012-12-10 23:14 694http://zhangxiang390.iteye.com/ ... -
Struts2中使用HttpServletRequest和HttpServletResponse
2012-12-10 22:35 943http://blog.csdn.net/wl_ldy/art ... -
Struts2-Value Stack浅析
2012-12-10 19:24 1338Value Stack的作用: 1. 可以作 ... -
struts2中减少action数量(通配符使用)
2012-12-07 14:50 508http://www.cnblogs.com/netshuai ... -
Struts2中 session的使用
2012-11-11 01:02 816在Struts2里,如果需要在Action中使用session ... -
struts2 架构图及工作流程
2012-10-19 00:43 6881、struts2架构图 2、工作流程 ... -
struts2 action中如何读取国际化资源文件
2012-07-26 22:53 1576action中如何读取国际化资源文件 1、在url地址中使用 ... -
struts2国际化文件的使用
2012-02-01 23:37 1043sturst2国际化资源文件有三种级别从高到低是:类级别(类名 ...
相关推荐
在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...
在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们需要声明全局的国际化资源文件。通过设置常量`struts.custom.i18n.resources`的值为`message`,我们...
在Struts2中,实现国际化通常涉及以下几个步骤: 1. **创建资源束文件**:在项目的`src/main/resources`目录下创建对应的资源文件,比如`messages.properties`作为默认语言(通常是英文),然后根据需要添加其他...
在Struts2中,我们可以创建名为`messages.properties`的默认资源文件,并根据需要为不同的语言和地区创建对应的文件,如`messages_en_US.properties`(美国英语)和`messages_zh_CN.properties`(简体中文)。...
### STRUTS2国际化的问题 #### 一、Struts2国际化的概述 Struts2作为一个流行的Web应用框架,为了满足全球用户的使用需求,提供了一系列国际化(Internationalization, 简称I18N)的支持。这包括了如何在配置文件...
在Struts2中,我们可以使用`ActionContext`类来获取当前请求的Locale对象,这个对象包含了用户浏览器所设置的语言和地区信息。然后,我们可以通过`ResourceBundle`类来加载对应的资源文件,根据Locale来选择正确的...
在探讨“Struts action 国际化 in18”这一主题时,我们首先需要理解Struts框架、国际化(Internationalization,通常缩写为i18n)的基本概念以及如何在Struts行动(Action)中实现国际化。 ### Struts框架简介 ...
在Struts1中,实现国际化主要依赖于`ResourceBundle`类,它用于存储特定语言环境的字符串。以下是如何在Struts1中设置和使用全局资源: 1. **创建资源文件**:首先,你需要为每种语言创建一个`.properties`文件,如...
然后,在Struts2的配置文件(如`struts.xml`)中,我们可以指定Action类使用的资源包: ```xml <action name="internationalDemo" class="com.example.InternationalDemoAction"> <result name="success">/...
实验报告将提交相关程序代码(Action 类程序、`web.xml`、`struts.xml`、JSP、国际化资源文件)和页面效果。 五、结论 通过本实验,我们掌握了 Struts2 标签库和国际化功能的使用,并实现了用户注册页面的国际化...
在Struts2中实现国际化,可以帮助你的应用触达全球用户。 Struts2的国际化主要依赖于Java的ResourceBundle类,该类用于管理应用程序中的多语言资源。以下是如何在Struts2中进行国际化设置的详细步骤: 1. **创建...
这篇指南将深入探讨Struts2如何实现国际化支持,并提供一个初步的引导。 首先,理解国际化的基本概念是至关重要的。国际化不仅仅是翻译文本,它还涉及到日期、时间、货币等格式的本地化。在Java中,这一过程通常...
在Struts2中,这通过资源包(Properties文件)实现,通常命名为`messages.properties`,`messages_en.properties`,`messages_zh_CN.properties`等,分别对应默认语言和不同语言版本。 - 使用`<s:text>`标签来显示...
在Struts2中实现国际化是一项关键功能,它允许应用程序为不同的语言和地区提供本地化的用户体验。下面将详细介绍如何使用Struts2来实现国际化,并探讨相关的源码和工具。 **一、国际化基础** 国际化(i18n)是软件...
在Struts2中,实现国际化主要通过以下步骤: 1. **创建资源文件**:资源文件通常以.properties为扩展名,如`messages_en.properties`(英语)和`messages_zh_CN.properties`(简体中文)。这些文件存储了应用中所有...
在Struts2中实现国际化,可以提供多语言支持,比如中英文切换,这对于全球用户来说非常关键。 首先,我们需要理解国际化的基本概念。国际化不是简单地翻译文本,而是设计一个可扩展的系统,以便能够轻松添加新的...
在Struts2中,资源文件通常是`.properties`格式,如`messages_en.properties`用于英语,`messages_zh_CN.properties`用于简体中文。这些文件存储了应用中的所有可本地化的字符串,例如错误消息、提示信息等。 3. *...
在Struts2中实现国际化,主要涉及以下几个关键步骤: 1. **创建资源文件**: 国际化的核心是资源文件,通常使用`.properties`格式,例如`login_en.properties`(英文)和`login_zh_CN.properties`(简体中文)。...
在Struts2中,我们主要依赖`ResourceBundle`类来实现国际化。创建一个名为`messages.properties`的资源文件,放置在项目的`src/main/resources`目录下,用于存放英文版的文本信息。例如: ``` hello.message=Hello,...