struts利用在session中放一个local对象来达到设置当前语言您的目的,默认的情况下,struts根据网页向后台提交时所包含的编码信息来提供缺省的local对象。这就是我们为什么可以通过更改网页显示语言设置,就能显示不同语言文字的原因。struts在session中存放的这个local对象取名为Globals.LOCAL_KEY的值,因此利用这个原理我们就可以用编程的方式来手工切换整个应用系统的语言。
struts国际化问题的一个小例子:(根据下拉列表的选择显示不同语言的网站)
1,首先针对不同的语言,写不同的MessageResources.properties文件,比如说简体中文是
MessageResources_zh_CN.properties,英文就是MessageResources_en_US.properties,然后对这些配置信息文件同样用native2ascii工具处理一次(打开cmd输入native2ascii然后把要显示的中文输入回车就ok了),把非ASCII码统统转为Unicode编码。 放在classes文件夹下你指定的地方,这里是放在/web-inf/classes/com/下,
我写的两个文件是;1,MessageResources_en_US.properties:内容如下:
version=hello,you have choose the english version
MessageResources_zh_CN.properties内容如下:
version=\u4f60\u597d,\u4f60\u5df2\u7ecf\u9009\u62e9\u4e86\u4e2d\u6587\u7248\u672c
(要注意的是:文件名中的zh和en代表语言的不能写错,而CN和US代表国家可以不写)
2,在struts-config.xml加入
<message-resources parameter="com.MessageResources" />
注意com为包名。
3,测试页面:index.jsp
<form name="form1" method="post" action="chooselocal.do">
<select name="il8n_info">
<option value="zh">中文版</option>
<option value="en">英文版</option>
</select>
<input type="submit" value="submit"><p>
</form>
4.相应的actionform:
package com.il8n;
import org.apache.struts.action.ActionForm;
public class il8nActionForm extends ActionForm {
private String il8n_info;
public String getIl8n_info() {
return il8n_info;
}
public void setIl8n_info(String il8n_info) {
this.il8n_info = il8n_info;
}
}
5:相应的acrion:
package com.il8n;
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.Globals;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
public class il8nAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
il8nActionForm il8naf = (il8nActionForm)form;
ActionMessages messages = new ActionMessages();
Locale locale = null;
if("zh".equals(il8naf.getIl8n_info())){
locale = new Locale("zh","CN");
}else if("en".equals(il8naf.getIl8n_info())){
locale = new Locale("en","Us");
}
this.setLocale(request, locale);
//将local对象放到session里也可以用下面的方法:
//request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
//英文struts是把local对象放在了session里面
return mapping.findForward("success");
}
}
6:struts-config.xml中的配置:
<form-beans>
<form-bean name="il8nActionForm" type="com.il8n.il8nActionForm"></form-bean>
</form-beans>
<action-mappings>
<action path="/chooselocal"
type="com.il8n.il8nAction"
name="il8nActionForm"
scope="request"
>
<forward name="success" path="/index.jsp"></forward>
</action>
</action-mappings>
<message-resources parameter="com.MessageResources" />
然后在index.jsp中使用<been:message key="version"/>来调用version的值显示不同的语言。(当然要引入相关的tag)
也就是当你选择中文版然后提交就会显示
你好,你选择了中文版
当你选择英文版的时候就会显示:
hello,you have choose the english version
分享到:
相关推荐
Struts2-i18n是Apache Struts框架中用于实现应用程序国际化的功能模块。这个例子主要是为了帮助初学者理解如何在Struts2框架下进行国际化设置。以下将详细讲解Struts2-i18n的基本概念、实现步骤以及相关知识点。 **...
I18N,即“Internationalization”的缩写,代表国际化,是软件设计中的一个重要概念,旨在使软件能够适应不同地区的语言和文化习惯。在这个“Struts2 I18N国际化最简单例子”中,我们将探讨如何在Struts2框架下实现...
在这个“il8n国际化实例”中,我们将重点探讨如何在Java Web应用中实现国际化,特别是使用Struts2框架。 Struts2是一个流行的开源MVC(Model-View-Controller)框架,广泛用于构建企业级Java Web应用。在Struts2中...
Struts2 框架提供了一个强大的标签库,用于简化 JSP 页面的开发。Struts2 标签库提供了多种标签,例如文本标签、表单标签、逻辑标签等。这些标签可以帮助开发者快速构建 JSP 页面,并且可以与 Struts2 框架的其他...
国际化(i18n)是软件开发中的一个重要概念,它涉及为不同地区的用户提供本地化内容。在Web应用中,这通常通过资源文件(如.properties或.xml文件)来实现,其中包含不同语言的文本字符串。 **二、Struts2国际化...
在这个例子中,我们将深入探讨如何在Struts2框架中结合Spring和Hibernate实现国际化。 首先,我们需要了解Struts2的国际化配置。这通常涉及到创建资源文件,如`messages.properties`和`messages_zh_CN.properties`...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织应用结构和控制流程的方式,同时支持多种技术,如MVC模式、拦截器、插件等。...这个例子对于理解和实践Struts2的国际化功能非常有帮助。
2. **配置Struts2**:在Struts2的配置文件(struts.xml或struts-default.xml)中,我们需要添加一个Interceptor(拦截器)来处理国际化。`i18n interceptor`是专门用于这个目的的,它可以自动检测用户的浏览器设置并...
这个是我自己学习三大框架中的struts2中的关于国际化的一个实例,个人感觉很有实际作用,需要导入7个jar包,注意!!javaasist.jar包一定要。 这中间还有关于Validation的代码在这里面,被注释了,不过需要一定的...
总的来说,实现Struts2的国际化是一个系统性的过程,涉及到资源文件的创建、框架的配置、Action的处理以及JSP的渲染等多个环节。理解并熟练掌握这些步骤,将有助于构建一个适应全球化需求的Web应用。
Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解
在"struts国际化例子"中,我们看到的是如何在Struts框架中实现国际化功能的一个实例。 首先,我们需要理解i18n的基本概念。"i18n"是“国际化”的缩写,这里的数字18代表单词"internationalization"中的字母数量。...
国际化(I18N)是软件开发中的一个重要方面,它允许应用程序根据用户的地域设置显示不同的语言和格式。在Java和Struts2中实现国际化,可以为全球用户提供更友好的用户体验。 首先,我们需要理解Java的国际化机制。...
Struts2是一个强大的Java web应用程序框架,它提供了一种组织和构建MVC(模型-视图-控制器)架构的方式。在Struts2中,国际化(i18n)是实现多语言支持的关键特性,允许应用根据用户的地区设置显示相应的语言内容。...
压缩包中的另一个文件`softStruts2`可能是一个示例项目或者工具,用于演示如何在实际项目中整合Struts2和国际化。这个文件可能包含了Struts2的配置、国际化资源文件以及相关的Java代码示例,供学习者参考和实践。 ...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...
Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...
- **资源文件支持**:Struts 1.2 支持将国际化资源存储在 `.properties` 文件中,每个文件对应一个特定的 `Locale`。 - **标签库**:Struts 1.2 提供了一系列用于显示和处理国际化内容的标签,如 `<s:text>` 标签...
在Web应用开发中,特别是使用Struts框架时,中文显示和国际化(Internationalization,简称i18n)问题是开发者常遇的挑战。本文将深入探讨解决Struts中文问题及国际化问题的终极方案,确保不同地区和语言环境下的...
5. **HelloWorld示例**:`HelloWorld.jsp`是一个简单的例子,展示如何在Struts2中使用国际化。在页面上,我们可以看到如下的代码: ```jsp ``` 这将会显示`messages.properties`文件中对应的`hello`值。 6. **...