`

struts对国际化的支持

阅读更多
1、struts国际化配置
*在struts-config.xml文件中加入
<message-resources parameter="MessageResources" />

 
2、提供国际化资源文件
* MessageResources.properties
* MessageResources_zh_CN.properties
login.form.field.Password=\u5BC6\u7801
login.form.button.login=\u767B\u5F55
login.form.field.username=\u7528\u6237

* MessageResources_en_US.properties
中文需要转换成Unicode编码(native2ascii.exe)

3.在jsp中采用<bean:message>读取国际化消息文本
<form action="login.do" method="post">
	<bean:message key="login.form.field.username"/>:<input type="text" name="username"><br>
	<bean:message key="login.form.field.Password"/>:<input type="password" name="password" ><br>
	<input type="submit" value="<bean:message key="login.form.button.login"/>">
</form>


4.利用struts默认将Locale放到session中的特性,我们可以完成语言的自动切换
  
*ChangeLanguageAction.java
   	//.......................................
   	String lang = request.getParameter("lang");
		Locale  locale =  Locale.getDefault();
		if("zh".equals(lang)){
			locale = new Locale("zh", "CN");
		}else if("en".equals(lang)){
			locale = new Locale("en", "US");
		}
		//将Locale设置到session中
//		request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
		this.setLocale(request, locale);
		return mapping.findForward("index");
		//.................................
		

5.动态消息国际化的主要三个步骤:
*创建国际化消息文本
*传递国际化消息文本
*显示国际化消息文本

如何创建国际化消息文本
理解ActionMessage和ActionMessages连个对象的区别

如何传递国际化消息文本
调用savaMessage()传递提示消息,调用savaError()传递错误消息


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

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;

/**
 * 登录Action
 * 负责取得表单数据,调用业务逻辑,返回转向信息
 * @author Administrator
 *
 */
public class LoginAction extends Action {

	@Override
	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
//		LoginActionForm laf = (LoginActionForm)form;
//		String username = laf.getUsername();
//		String password = laf.getPassword();
//		if("admin".equals(username) && "admin".equals(password)){
//			//登录成功
//			return mapping.findForward("success");
//		}else{
//			//登录失败
//			return mapping.findForward("error");
//		}		
		
		LoginActionForm laf = (LoginActionForm)form;
		String username = laf.getUsername();
		String password = laf.getPassword();
		UserManager userManager = new UserManager();
		ActionMessages messages = new ActionMessages();  
		try{			
			userManager.login(username, password);
			//创建国际化消息
			ActionMessage message = new ActionMessage("login.success",username);
			messages.add("login_success_1",message);
			//传递国际化消息
			this.saveMessages(request, messages);
			return mapping.findForward("success");
		}catch(UserNotFoundException e){
			e.printStackTrace();
			//创建国际化消息
			ActionMessage error = new ActionMessage("login.user.not.found", username);
			messages.add("error_1",error);
			// 传递国际化消息
			this.saveErrors(request, messages);
		}catch(PasswordErrorException e){
			e.printStackTrace();
			ActionMessage error = new ActionMessage("login.password.error");
			messages.add("error_2",error);
			this.saveErrors(request, messages);
		}
		
		return mapping.findForward("error");
		
	}
	
}



如何显示国际化消息文本
通过<html:messages>显示提示消息和错误消息
通过<html:errors>显示错误消息(只能显示错误消息)
  *如果需要特效则在国际化资源文件中加入
errors.header=<UL>
		errors.prefix=<font color=red><LI>
		errors.suffix=</LI></font>

 
分享到:
评论

相关推荐

    Struts对国际化支持(国际化概念及具体操作详细讲解)

    Struts框架是Java Web开发中的一个经典MVC(Model-View-Controller)框架,它极大地简化了企业级应用的开发工作。...在实际项目中,可能还需要考虑时区、排序规则、数字格式等其他文化差异,以确保全面的国际化支持。

    struts1.2 国际化

    Struts 1.2 框架作为 Java Web 开发的经典框架之一,提供了强大的国际化支持。本文将详细介绍 Struts 1.2 如何实现国际化,以及如何利用该框架创建国际化应用。 #### 二、本地化与国际化基础 ##### 1. 本地化 ...

    Struts2国际化支持引导(初)

    这篇指南将深入探讨Struts2如何实现国际化支持,并提供一个初步的引导。 首先,理解国际化的基本概念是至关重要的。国际化不仅仅是翻译文本,它还涉及到日期、时间、货币等格式的本地化。在Java中,这一过程通常...

    struts2国际化源码以及eclipse国际化插件

    对于国际化支持,Eclipse有一个名为PropEdit的插件(jp.gr.java_conf.ussiy.app.propedit_5.3.3.zip),可以帮助开发者更方便地管理和编辑这些.properties资源文件。PropEdit提供了一个图形化的界面,可以同时查看和...

    struts2国际化例子源码

    总结,这个Struts2国际化例子源码展示了如何在Java web应用中实现多语言支持,通过配置Struts2框架、编写Action类、创建资源文件以及在JSP页面中使用标签,实现了对不同语言环境的适应。这个例子对于理解和实践...

    Struts1 和 Struts 2 国际化全局资源

    Struts1 和 Struts 2 是两种非常流行的Java Web开发框架,它们都提供了对国际化(i18n)的支持,使得应用能够根据用户的语言和地区显示相应的本地化内容。国际化是软件设计的一个重要方面,它允许应用程序在全球范围...

    struts1国际化小实例

    在Struts1中实现国际化(i18n)是提高应用程序可扩展性和适应不同语言环境的重要手段。下面将详细解释如何在Struts1中进行国际化实践,并结合给出的实例进行解析。 一、国际化(i18n)基础 国际化是指软件设计时...

    struts2国际化 标签 页面 处理类

    Struts2是一个流行的Java web框架,它提供了强大的国际化支持,帮助开发者创建多语言的应用程序。在Struts2中实现国际化,主要包括配置、JSP页面、表单和Action类的处理。 首先,在`struts.xml`配置文件中,我们...

    STRUTS2国际化的问题

    综上所述,Struts2框架提供了丰富的国际化支持,通过对配置文件、后端处理逻辑以及前端展示的合理设置,可以轻松实现多语言应用的开发。开发者需要关注字符编码的处理,以确保不同语言环境下数据的一致性和准确性。

    Struts2国际化Demo

    在“Struts2国际化Demo”中,我们主要探讨的是如何利用Struts2框架实现应用的多语言支持,即国际化(i18n)功能。国际化是一种设计方法,使得软件能够根据不同地区的语言和文化习惯进行调整,使得全球用户都能无障碍...

    struts2国际化测试

    接下来,让我们看看如何配置Struts2以支持国际化。在Struts2的配置文件`struts.xml`中,我们需要定义一个全局结果类型`i18n`,这样当用户请求改变语言时,框架知道如何处理。以下是一个示例配置: ```xml ...

    Struts国际化源代码

    1. **配置Struts2的本地化支持**:在`struts.xml`配置文件中,需要启用本地化插件,例如: ```xml &lt;constant name="struts.i18n.enabled" value="true" /&gt; &lt;constant name="struts.i18n.reload" value="false" /&gt;...

    struts1.x 最简洁国际化 源代码

    在国际化(i18n)方面,Struts1提供了强大的支持,使得应用程序可以适应不同语言和地区的用户需求。以下是关于Struts1.x国际化的一些核心知识点: 1. **资源包(Resource Bundle)**: - 在Java中,资源包是包含...

    struts2 国际化使用

    在`struts.xml`配置文件中,确保已经启用Struts2的国际化支持。你可以通过`&lt;constant&gt;`元素设置`struts.i18n.enabled`为`true`,如下: ```xml &lt;constant name="struts.i18n.enabled" value="true"/&gt; ``` 6. **...

    struts2国际化处理全解

    在国际化处理方面,Struts2提供了全面的支持,使得开发者能够轻松地为多语言环境的应用程序创建接口。 首先,我们需要了解什么是国际化(Internationalization)和本地化(Localization)。国际化是指设计和开发...

    struts2国际化demo

    总结来说,"Struts2国际化demo"是一个教育性的实例,旨在教授开发者如何利用Struts2框架提供多语言支持。通过创建和配置资源文件,结合拦截器和视图层的标签,我们可以轻松地使应用具备国际化的特性,从而为全球用户...

    struts2国际化+简单的标签+用户注册和登录

    - 国际化(i18n)允许应用为不同的语言和地区提供支持。在Struts2中,这通过资源包(Properties文件)实现,通常命名为`messages.properties`,`messages_en.properties`,`messages_zh_CN.properties`等,分别对应...

    struts国际化(项目)

    在“struts国际化(项目)”中,我们关注的是如何使应用程序支持多种语言,即国际化(Internationalization,通常缩写为i18n)。这个主题包括了资源包的创建、配置文件的设置以及在Struts中如何调用这些资源来显示...

    struts2标签库及国际化的使用例子

    Struts2 框架提供了强大的国际化功能,用于支持多语言显示。在本实验中,我们将使用 Struts2 的国际化功能来实现用户注册页面的国际化显示。 首先,我们需要创建国际化资源文件,例如 `messages_en_US.properties` ...

Global site tag (gtag.js) - Google Analytics