有一段时间没有看strust2的国际化了,今天突然想起来做了以下!发现都快忘记了,以便再次忘记就在这里做一个日记同时也给大家分享一下!
首先建一个strut2的项目这就不多说!
1.在struts.properties中加入如下代码
Java代码
#国际化文件
struts.custom.i18n.resources=messageResources(这个是资源文件的前缀,如果要是有文件目录就这样写xxxx.xxx...messageResources)
或者在struts.xml里面加上
Java代码
<constant name="struts.custom.i18n.resources" value="messageResources"></constant>
2.建一个languageAction
Java代码
package com.hopsun.strust2.action;
import java.util.Locale;
import com.opensymphony.xwork2.ActionContext;
public class InternationalAction {
private String languageName;
//这个是测试直接用request_locale=zh_CN/*
public String ChangeLanguage() {
return "success";
}
//这个是测试 用我们自定义一个页面参数,更换语言类型
public String ChangeLanguage2() {
Locale l = Locale.getDefault();
if(this.languageName==null){
l = new Locale("zh", "CN");
}else if (this.languageName.equals("ft")) {
l = new Locale("zh", "TW");
} else if (this.languageName.equals("en")) {
l = new Locale("en", "US");
}
// ActionContext.getContext().getSession().put("WW_TRANS_I18N_LOCALE",
// l);
ActionContext.getContext().setLocale(l);
return "success";
}
public String getLanguageName() {
return languageName;
}
public void setLanguageName(String languageName) {
this.languageName = languageName;
}
}
3.把action交给spring来管理
Java代码
<bean name="Inter" class="com.hopsun.strust2.action.InternationalAction" scope="prototype" />
4.struts.xml配置
Java代码
<action name="Change" class="Inter" method="ChangeLanguage">
<result>/Internationalization.jsp</result>
</action>
<action name="Chan" class="Inter" method="ChangeLanguage2">
<result>/Internationalization.jsp</result>
</action>
5.资源文件
放在classes下面,即项目/src/
messageResources_zh_CN.properties
Java代码
#messageResources_zh_CN.properties
language=语言
name=姓名
age=年龄
sex=性别
messageResources_en_US.properties
Java代码
#messageResources_en_US.properties
language=language(re)
name=name(re)
age=age(re)
sex=sex(re)
messageResources_zh_TW.properties
Java代码
#messageResources_zh_TW.properties
language=語言
name=姓名
age=年齡不是問題
sex=性別
6.jsp页面
Java代码
<%@ 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>
<title>My JSP 'Internationalization.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>
<!-- 测试第一种 对应action 方法ChangeLanguage() request_locale-->
<a href="<%=basePath%>Change.do?request_locale=zh_CN">中文简体</a>
<a href="<%=basePath%>Change.do?request_locale=zh_TW">中文繁体</a>
<a href="<%=basePath%>Change.do?request_locale=en_US">English</a><br>
<!-- 测试测试自定义参数 对应action 方法ChangeLanguage2() languageName-->
<a href="<%=basePath%>Change.do">中文简体</a>
<a href="<%=basePath%>Change.do?languageName=ft">中文繁体</a>
<a href="<%=basePath%>Change.do?languageName=en">English</a><br>
<s:label key="language"/><input name="language">
<s:label key="name"/><input name="name">
<s:label key="age"/><input name="age">
<s:label key="sex"/><input name="sex">
</body>
</html>
上面步骤可以互换,只要记得不要少了配置就行!
项目切图
分享到:
相关推荐
在Struts2中实现国际化,可以帮助开发者创建对多语言环境友好的应用。 本示例主要围绕Struts2框架如何实现国际化进行深入探讨。源码中包含两个关键部分:WebRoot目录和src目录。 1. **WebRoot** 目录: - `WEB-...
Struts2国际化的实现原理;简单的struts2国际化实现过程的讲解
Struts2是一个流行的Java web框架,它提供了强大的国际化支持,帮助开发者创建多语言的应用程序。在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们...
### STRUTS2国际化的问题 #### 一、Struts2国际化的概述 Struts2作为一个流行的Web应用框架,为了满足全球用户的使用需求,提供了一系列国际化(Internationalization, 简称I18N)的支持。这包括了如何在配置文件...
struts2国际化MyEclipse开发struts2国际化MyEclipse开发童叟无欺
在Struts2中实现国际化(i18n)是一项重要功能,它允许应用程序支持多种语言,以满足全球用户的需求。国际化不仅仅是翻译文本,而是设计应用程序以适应不同地区的文化习惯和语言需求。 首先,让我们来探讨一下...
- **动态设置 Locale**:在用户登录或选择语言时,通过 `HttpServletRequest.getSession().setAttribute("org.apache.struts2.i18n.locale", locale)` 动态设置 `Locale`。 - **错误处理**:确保国际化应用在不同...
在“struts2国际化测试”这个主题中,我们将探讨如何在Struts2框架下实现应用程序的国际化功能。 首先,国际化(i18n,i代表第9个字母n,18是n到i的字母数,表示国际化)是使软件能够适应不同语言和文化背景的重要...
虽然Struts1和Struts2都是为了处理Web应用的国际化,但Struts2提供了更强大和灵活的机制。在升级或迁移项目时,了解这两个框架的国际化处理方式对于保持代码的兼容性和可维护性至关重要。在实际开发中,开发者可以...
在国际化处理方面,Struts2提供了全面的支持,使得开发者能够轻松地为多语言环境的应用程序创建接口。 首先,我们需要了解什么是国际化(Internationalization)和本地化(Localization)。国际化是指设计和开发...
这篇指南将深入探讨Struts2如何实现国际化支持,并提供一个初步的引导。 首先,理解国际化的基本概念是至关重要的。国际化不仅仅是翻译文本,它还涉及到日期、时间、货币等格式的本地化。在Java中,这一过程通常...
总的来说,这个项目提供了一个基础的Struts2应用实例,展示了如何实现国际化、使用Struts2标签库,以及创建简单的用户注册和登录功能,尽管它并不涉及实际的数据存储。对于学习和理解Struts2框架的运作机制,这是一...
Struts2 标签库及国际化的使用案例 Struts2 框架提供了强大的标签库和国际化功能,本实验旨在掌握 Struts 2 标签库和国际化功能的使用,并实现用户注册页面的国际化显示。 一、Struts2 标签库 Struts2 框架提供了...
"Struts2国际化demo"是一个示例,展示了如何在Struts2框架下实现这一功能,使得网站可以根据用户的浏览器设置显示不同的语言。 首先,要实现国际化,我们需要创建资源文件。在Java中,这些通常是`.properties`文件...
在Struts2中实现国际化,可以帮助你的应用触达全球用户。 Struts2的国际化主要依赖于Java的ResourceBundle类,该类用于管理应用程序中的多语言资源。以下是如何在Struts2中进行国际化设置的详细步骤: 1. **创建...
在Struts2中实现国际化是一项关键功能,它允许应用程序为不同的语言和地区提供本地化的用户体验。下面将详细介绍如何使用Struts2来实现国际化,并探讨相关的源码和工具。 **一、国际化基础** 国际化(i18n)是软件...
在Struts2中实现国际化(I18n,Internationalization)是常见的需求,目的是使应用程序能够根据用户的语言和地区提供相应的本地化内容。本示例将详细介绍如何在Struts2框架下实现国际化,并通过myEclipse开发环境...
国际化(i18n)是Struts2的一个重要特性,使得应用能够支持多种语言环境,以满足全球用户的语言需求。以下是对Struts2框架国际化实现的详细讲解。 1. **国际化的基本概念** 国际化(Internationalization,简称i18...
2. **配置Struts2**:在Struts2的配置文件(struts.xml或struts-default.xml)中,我们需要添加一个Interceptor(拦截器)来处理国际化。`i18n interceptor`是专门用于这个目的的,它可以自动检测用户的浏览器设置并...