1.首先把Struts2的环境搭建起来,
2.建立一个action.测试i18n的。
3.下面这个是struts.xml的简单配置,里有2中properties文件的配置,一种是全局的,一种是局部的,
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<!-- 局部的配置 -->
<!--
<constant name="struts.custom.i18n.resources" value="com/test/action/I18n"></constant>
-->
<!-- 全局的配置 -->
<!-- -->
<constant name="struts.custom.i18n.resources" value="test"></constant>
<package name="default" namespace="/" extends="struts-default">
<action name="" class="com.test.action.I18nAction">
<result >/index.jsp</result>
</action>
</package>
</struts>
4.根据struts2的配置,插件一个名字为test_en_US.properties和test_zh_CN.properties的配置文件,
test_en_US.properties里面的内容为:hello=hi,hello
test_zh_CN.properties里面的内容为:hello=\u4F60\u597D (注意了:这个是通过编码编译过来的,也可以试用MyEclipse的properties自动编辑转换实现)。
5.下面是jsp的展现页面:本人整理了以下几种实现方法,
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
</head>
<body>
<a href="<%=basePath%>?local=zh_CN">中文</a>
<a href="<%=basePath%>?local=en_US">英文</a>
This is my JSP page. <br>
<s:debug></s:debug>
property:<s:property value="getText('hello')"/><br>
text:<s:text name="hello"></s:text><br>
i18n:<s:i18n name="test">
<s:text name="hello"></s:text>
</s:i18n>
</body>
</html>
6.想要实现中英文切换,还要在action中加入这一一句话
Locale locale=new Locale("zh","CN");//(这个能根据你传来的值动态改变)
ServletActionContext.getRequest().getSession().setAttribute("WW_TRANS_I18N_LOCALE", locale);
7.基本上可以实现动态链接切换中英文了,不过,还有个小问题,需要解决,那就是,需要点击2下中文才能切换到中文,
英文同样也是,这个问题怎么解决呢?
8.想解决那个问题其实很简单,配置一个fitler拦截器就行了,这个拦截器最好配置在struts2的拦截器前面,
拦截器的内容大概是:
String local=arg0.getParameter("local");
if(local!=null){
String loc[]=local.split("_");
Locale locale=new Locale(loc[0],loc[1]);
((HttpServletRequest)arg0).getSession().setAttribute("WW_TRANS_I18N_LOCALE", locale);
}
arg2.doFilter(arg0, arg1);
这样就能实现动态切换中英文了。
分享到:
相关推荐
Struts2-i18n是Apache Struts框架中用于实现应用程序国际化的功能模块。这个例子主要是为了帮助初学者理解如何在Struts2框架下进行国际化设置。以下将详细讲解Struts2-i18n的基本概念、实现步骤以及相关知识点。 **...
在这个“Struts2 I18N国际化最简单例子”中,我们将探讨如何在Struts2框架下实现国际化功能。 1. **Struts2的I18N支持** Struts2提供了内置的支持来处理多语言环境。它通过资源包(Resource Bundle)来管理不同的...
Struts2是一个非常流行的Java Web框架,用于构建可维护、可扩展且结构良好的应用程序。...这个提供的`i18n`压缩包文件可能包含了示例的资源包和相关的配置文件,可以帮助初学者理解并实践Struts2的国际化实现。
这个"struts2 i18n国际化实例"应该包含了实现上述所有步骤的具体代码示例,对于初学者来说,是一个很好的学习起点,可以帮助理解Struts2如何处理国际化,以及如何在实际项目中应用这些概念。同时,遇到问题可以与...
Struts2-i18n是一个专门针对Struts2框架实现的国际化(i18n)解决方案。在Web开发中,国际化是一项重要的功能,它允许应用为不同地区的用户提供本地化的界面和内容。Struts2作为流行的Java Web MVC框架,提供了一套...
Struts I18N 国际化是一种技术,它允许应用程序根据用户所在的地理位置或首选语言环境来显示相应的本地化内容。在Struts框架中,I18N(Internationalization)是一个关键特性,使得开发者能够轻松地创建支持多语言的...
国际化(i18n)使得软件能够适应不同国家和地区的语言环境,包括中文和英文。在这个主题中,我们将深入探讨如何使用Java和JSP进行语言切换,以满足用户对中英文显示的需求。 1. **Java 国际化基础** Java 提供了 `...
在IT领域,国际化(i18n)是一种重要的技术实践,特别是在构建可扩展的Web应用程序时。Struts2作为一款流行的MVC(Model-View-Controller)框架,为开发者提供了便捷的方式来实现国际化。本文将深入探讨如何在Struts2...
本教程将深入讲解如何在Struts2框架中实现中英文切换功能。 1. **创建资源文件**: 在Struts2国际化过程中,关键在于使用资源文件来存储不同语言的文本。资源文件通常命名为`XX.properties`,其中`XX`代表语言代码...
在Struts2中实现国际化,可以提供多语言支持,比如中英文切换,这对于全球用户来说非常关键。 首先,我们需要理解国际化的基本概念。国际化不是简单地翻译文本,而是设计一个可扩展的系统,以便能够轻松添加新的...
"struts_i18n_login.rar_i18n" 这个标题暗示我们将会探讨如何在 Struts 1 中实现国际化登录界面。 国际化(i18n)这个名字来源于 "internationalization" 的首字母缩写,数字 "18" 是因为 "n" 之后到 "i" 之间有18...
Struts2_i18n压缩包文件可能包含用于实现国际化功能的资源文件和相关代码。资源文件通常是.properties格式,例如`messages.properties`,它是默认的语言版本(通常为英文),而`messages_zh_CN.properties`则对应...
通过以上步骤,你可以实现在Struts2应用中简单的中英文切换。当然,支持更多语言只需遵循相同的方法,增加对应的资源包文件并提供选择语言的选项即可。这使得Struts2应用能够更好地适应全球化的需求,提供给不同地区...
在Struts2中实现国际化(i18n)是一项重要功能,它允许应用程序支持多种语言,以满足全球用户的需求。国际化不仅仅是翻译文本,而是设计应用程序以适应不同地区的文化习惯和语言需求。 首先,让我们来探讨一下...
总结来说,Struts2和Rails的国际化实现都是基于资源文件,并通过特定的API或辅助方法在代码中引用这些资源。它们都考虑了会话和请求的上下文来自动选择合适的语言,并提供了手动切换语言的能力。尽管实现方式有所...
在Struts2中实现国际化(I18n,Internationalization)是常见的需求,目的是使应用程序能够根据用户的语言和地区提供相应的本地化内容。本示例将详细介绍如何在Struts2框架下实现国际化,并通过myEclipse开发环境...
Struts1是一个经典的Java Web开发框架,它在2000年代初期被广泛使用,用于构建企业级的应用程序。国际化(i18n)是软件设计中的一个重要...通过研究这些文件,你可以更好地理解如何在实际项目中实现中英文切换功能。
在Struts2中,国际化(Internationalization,简称i18n)是一项重要的功能,它允许应用程序支持多种语言,从而更好地服务全球用户。本教程将深入探讨如何在Struts2 2.3.15.3版本中实现国际化。 一、准备工作 首先...
在Struts2中,拦截器(Interceptor)是实现业务逻辑控制和增强功能的重要机制,而国际化(Internationalization,简称i18n)则能帮助我们构建支持多语言的Web应用。下面将详细解释这两个知识点以及它们如何在Struts2...
下面将详细解释如何在Struts2中进行国际化设置,并实现自动语言切换。 首先,我们需要理解国际化的基本概念。国际化是一种设计方法,使软件能够在多种语言和文化环境下运行,而无需进行大量的代码修改。在Java中,...