`
- 浏览:
54393 次
- 性别:
- 来自:
北京
-
就开发过程中用到的关于struts国际化的一些东西做个总结,国际化背景是由用户自行选择语言环境,然后系统显示相应国家\地区、语言环境下的样子。strust2国际化一般包括验证提示信息国际化、类型转化提示国际化、Action信息国际化和jsp页面国际化。该系统国际化中主要用到Action信息国际化和jsp页面国际化,以及少量的jsp页
面中的js国际化,下面就这几个方面进行介绍。
1.定义JavaBean,该JavaBean里保存了当前系统所支持的全部语言。该JavaBean的代
码如下:
package com.struts.test;
public class Locales{
private Locale current;
public void setCurrent(Locale cur){
this.current=cur;
}
public Map<String,Locale> getLocales(){
Map<String,Locale> locales=new Hashtable<String,Locals>();
//global是usen和zhcn所在的资源文件的baseName
ResourceBundle bundle = ResourceBundle.getBundle("global" , current);
locales.put(bundle.getString("usen"), Locale.US);
locales.put(bundle.getString("zhcn"), Locale.CHINA);
return locales;
}
}
2. 定义selectLanguage.jsp页面,该页面中主要包含一个下拉框,由用户自行选择语
言,其代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<script type="text/javascript">
function langSelecter_onChanged()
{
document.getElementById("langForm").submit();
}
</script>
<s:set name="SESSION_LOCALE" value="#session['WW_TRANS_I18N_LOCALE']"/>
<s:bean id="locales" name="com.struts.test.Locales">
<s:param name="current" value="#SESSION_LOCALE == null ? locale :
#SESSION_LOCALE"/>
</s:bean>
<form action="<s:url/>" id="langForm">
<s:text name="language"/>
<s:select label="Language" list="#locales.locales" listKey="value"
listValue="key" value="#SESSION_LOCALE == null ? locale : #SESSION_LOCALE"
name="request_locale" id="langSelecter"
onchange="langSelecter_onChanged()" theme="simple"/>
</form>
3.配置struts.xml文件
Strust2的默认拦截器包括i18n拦截器,i18n拦截器在执行Action前,自行查找请求
中一个名为request_locale的参数,如果该参数存在,拦截器将其作为参数,转化成Locale对象,并将其设为用户默认的Locale。若不执行Action,则根据浏览器的语言环境生成Locale对象,用户选择的语言环境不起作用。下面的配置就是为了保证每一个页面都是执行Action后跳转的,从而可以保证用户选择的语言环境可以起作用。若每个页面能确保是Action之后跳转的,可省略该配置。配置代码如下:
<action name="*">
<result>/WEB-INF/jsp/{1}.jsp</result>
</action>
4.将selectLanguage.jsp包含到系统的首页(index.jsp或者login.jsp),代码如下:
<s:include value="selectLanguage.jsp"/>
5.国际化信息显示
(1)Action信息国际化
将资源文件放在包com.strusts下,命名为package_language_country.properties,则com.strusts目录下的所有action都可以访问到该资源文件。在Action中使用getText
("key")获得相应的值。
(2)JSP页面国际化
系统开发中使用到全局资源文件和临时资源文件。下面分别介绍:
①全局资源文件
只在struts.xml中配置如下:
<constant name="struts.custom.i18n.resources" value="global"></constant>
global为全局资源文件的baseName,在jsp中通过<s:text name="key"/>直接访问。
②临时资源文件
它不需要在struts.xml中配置,而是在jsp页面中加入<s:i18n name="resource">用到国际化资源的内容</s:i18n>,resource是临时资源文件的baseName。访问方法同上,<s:text name="key"/>。
(3)jsp页面中js国际化
通过链接a的href出发js函数,<a href="javascript:check('<s:text name="lan"/>');",js函数中根据lan不同显示相应语言的提示信息。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
Struts 1.2 框架作为 Java Web 开发的经典框架之一,提供了强大的国际化支持。本文将详细介绍 Struts 1.2 如何实现国际化,以及如何利用该框架创建国际化应用。 #### 二、本地化与国际化基础 ##### 1. 本地化 ...
理解并掌握Struts2的国际化机制对于开发全球化应用至关重要。通过合理的配置和利用拦截器、ActionContext以及视图层的标签,我们可以为用户提供更加友好和个性化的多语言体验。 以上就是关于“Struts2国际化”的...
Struts 是一个开源的 JavaEE Web 应用框架,它主要负责处理用户的请求,并通过模型-视图-控制器(MVC)...在实际开发中,还需要对异常处理、国际化、安全性等方面有深入理解,以构建稳定、高效、可扩展的Struts应用。
总结一下,Struts2的国际化测试涉及到以下几个关键步骤: 1. 创建资源文件,包含不同语言的文本。 2. 在`struts.xml`中配置国际化结果类型和全局结果。 3. 在Action类中处理语言选择并设置上下文中的语言。 4. 使用...
Struts框架提供了强大的国际化支持,允许开发者轻松地为不同的语言和地区创建本地化的版本。 #### 四、实现Struts的国际化 1. **创建资源文件**:Struts使用属性文件来存储文本消息和其他本地化信息。每个语言版本...
总结,实现Struts2的国际化涉及资源文件的创建、配置Struts2的`struts.xml`、设置locale以及在JSP页面中使用国际化标签库。理解和掌握这些步骤对于开发全球化应用程序至关重要。通过阅读源码和利用相关工具,开发者...
总结来说,"Struts2国际化demo"是一个教育性的实例,旨在教授开发者如何利用Struts2框架提供多语言支持。通过创建和配置资源文件,结合拦截器和视图层的标签,我们可以轻松地使应用具备国际化的特性,从而为全球用户...
"Struts国际化处理"是指在Struts框架中实现应用程序的多语言支持。这通常涉及到以下几个关键概念和步骤: 1. **资源文件**:在Struts中,我们使用.properties文件来存储不同语言的文本资源。例如,`messages_en....
在这个“Struts2项目开发经验总结”中,我们将深入探讨Struts2的核心概念、关键特性以及在实际项目中的应用。 首先,Struts2作为控制器,负责处理HTTP请求,并通过Action类来执行业务逻辑。Action类是Struts2的核心...
总结,Struts2的国际化支持使得开发者能够轻松地为多种语言的用户提供一致的体验。从创建Resource Bundle,配置Struts2,到在Action和视图中使用,整个流程是直观且灵活的。通过理解这些基本概念和实践,你可以为你...
总结一下,Struts的国际化功能主要涉及到以下步骤: 1. 创建资源文件,每种语言一个。 2. 在Struts配置文件中声明资源文件的位置。 3. 在Action中使用`ActionMessages`或`ActionErrors`添加和显示消息。 4. 在JSP中...
这个框架简化了开发过程,提供了丰富的功能,包括国际化、数据验证、结果映射等。以下是对Struts2知识点的详细总结: 1. **Struts2核心组件** - **FilterDispatcher**(或现在的`StrutsPrepareAndExecuteFilter`)...
### Struts2国际化详解 #### 一、引言 随着全球化的不断推进,软件系统越来越多地需要支持多种语言和地区设置,以满足不同国家和地区用户的使用习惯。因此,国际化(Internationalization,简称i18n)成为了现代...
### Struts国际化的使用 #### 一、Struts框架简介 Struts是一个开源的MVC(Model-View-Controller)框架,它简化了Java Web应用的开发过程,并且支持多种功能,包括表单验证、国际化等。对于需要支持多语言的应用...
总结一下,Struts2的国际化主要涉及以下知识点: 1. Java的`ResourceBundle`和`.properties`文件用于存储本地化信息。 2. 在Struts2配置文件中启用I18N支持。 3. 使用`ActionContext`或`ValueStack`在Action和视图...
总结起来,Struts2的数据校验机制提供了多种方式确保数据质量,而其国际化功能则使得应用能够服务于全球用户。理解并熟练掌握这些机制,对于开发健壮、多语言的Web应用至关重要。在实际项目中,开发者可以根据需求...
在探讨“Struts action 国际化 in18”这一主题时,我们首先需要理解Struts框架、国际化(Internationalization,通常缩写为i18n)的基本概念以及如何在Struts行动(Action)中实现国际化。 ### Struts框架简介 ...