`

struts2国际化配置(+页面下拉修改)

阅读更多
可以用struts.xml或struts.properties可用于覆盖default.properties的属性配置;
如:
default.properties
### Load custom default resource bundles
# struts.custom.i18n.resources=testmessages,testmessages2

### workaround for some app servers that don't handle HttpServletRequest.getParameterMap()
### often used for WebLogic, Orion, and OC4J
struts.dispatcher.parametersWorkaround = false

那么我们可以在struts.xml里面这样配置进行配置:
   1. <constant name="struts.custom.i18n.resources" value="messageResources"></constant>  

struts.properties
struts.custom.i18n.resources=messageResources

这两种配置都可以,区别就是在服务器在执行类加载的时候会先加载struts.xml后加载struts.properties
注意:
1。在配置他的资源文件明前缀的时候可以指定在具体的那个目录下面,如果我不是放在src目录下面,而是放在com.test.action的目录下,那么可以这么写
struts.custom.i18n.resources=com.test.action.messageResources
2。在命名的时候要加上区域和本地方言,即在这个action目录下面建立
messageResources_zh_CN.properties
messageResources_en_US.properties
3。在配置中文的时候不能保存那么我们可以在终端里面
执行native2ascii 这个程序来进行转码,转为ascii码
当然,也可以对文件进行转换native2ascii -encoding utf-8 /home/soft22/132.txt /home/soft14/456.txt
引用

[soft14@hzserver1 ~]$ native2ascii
我是中国人
\u6211\u662f\u4e2d\u56fd\u4eba

引用
jsp页面可以用struts标签的key属性来调用资源文件里面的key
a.了解什么是国际化、Struts2国际化原理(i18n)
b.JSP如何实现国际化、Action国际化支持
JSP:<s:text name="">标签和表单输入性组件<s:textfield key=""/>,不需要在使用label属性

Action: ActionSupport提供了getText()方法
c.资源文件
(熟悉)全局资源文件:在struts.properties或struts.xml中由struts.custom.i18n.resources指定
临时资源文件:由<s:i18n>指定
包范围的资源文件:在任意包下创建package_语言_区域.properties
Action范围的资源文件:在Action同级目录下创建Action类名_语言_区域.properties

<%@ page language="java" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@page isELIgnored="false" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head> 
    <title>My JSP 'index.jsp' starting page</title>
  </head>
  <body>
   <hr>
   	<s:form action="" method="post">
     	<s:textfield key="login.username"></s:textfield><br>
     	<s:textfield key="login.sex"></s:textfield>
     		<s:submit/><s:reset/>
     </s:form>
  </body>
</html>

然后修改浏览器的使用语言,拦截器就可以修改当前客户端的local属性,服务器会去找相应的配置资源文件信息在客户端显示。

也可以实现页面修改

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
     <%@ taglib uri="/struts-tags" prefix="s" >
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	function changeLoc(){
		var s = document.getElementById("loc").value;
		window.location.href = "hello.action?loc="+s;
	}
</script>
</head>
<body>
<s:select id="loc" name="loc"  onchange="changeLoc()" list='#{"zh_CN":"中文","en_US":"英文"}'></s:select>
<hr>
<s:text name="msg.hell"></s:text><br>
<s:textfield key="user" name="name"></s:textfield>
<s:fielderror></s:fielderror>
</body>
</html>

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="myfirst1" extends="struts-default">
		<action name="regist" class="tarena.actions.RegistAction">
			<result name="success">/ok.html</result>
			<result name="input">/regist.jsp</result>
		</action>
		<!-- RegistAction-regist_add-validation.xml -->
		<!-- RegistAction-regist_update-validation.xml -->
		<!-- 如果Action有多个业务方法,可以采取以下方法配置
		<action name="regist_*" class="tarena.actions.RegistAction" method="{1}">
			<result name="success">/ok.html</result>
			<result name="input">/regist.jsp</result>
		</action>
		 -->
	<action name="hello" class="tarena.actions.HelloAction">
		<result name="success">/i18n.jsp</result>
		<result name="input">/i18n.jsp</result>
	</action>
	</package>
</struts>

package tarena.actions;
import java.util.Locale;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class HelloAction extends ActionSupport{

	private String loc;
	public void validate(){
		System.out.println(loc);
		String[] code = loc.split("_");
		Locale locale = new Locale(code[0],code[1]);
		ActionContext.getContext().setLocale(locale);
		this.addFieldError("msg",this.getText("msg.error"));
	}
	public String execute(){
		System.out.println(loc);
		String[] code = loc.split("_");
		Locale locale = new Locale(code[0],code[1]);
		ActionContext.getContext().setLocale(locale);
		return "success";
	}
	public String getLoc() {
		return loc;
	}
	public void setLoc(String loc) {
		this.loc = loc;
	}
}
分享到:
评论

相关推荐

    ajax+struts2.0+jsp下拉列表级联

    在"AjaxTest"这个压缩包文件中,可能包含了实现这一功能的源代码,包括JSP页面、Struts2 Action类、相关的JavaScript脚本以及可能的配置文件。通过研究这些文件,你可以深入理解如何将AJAX、Struts2和JSP结合,实现...

    struts2国际化

    Struts2国际化(i18n)是Java Web开发中一个关键的概念,它允许应用程序根据用户的地域设置显示不同的语言和文化信息。这个过程涉及到资源文件的创建和使用,以实现多语言支持。以下是对Struts2国际化进行详细解释的...

    Struts+Hibernate+MyEclipse+Tomcat+MySQL的乱码之解决篇

    在本篇文章中,我们将深入探讨如何解决Struts + Hibernate + MyEclipse + Tomcat + MySQL环境中出现的乱码问题。该问题通常出现在处理中文字符时,由于编码设置不当导致中文显示为乱码或无法正常读取。为了确保系统...

    Struts2框架实现图书管理系统

    在"Struts2框架实现图书管理系统"这个项目中,我们将深入探讨如何利用Struts2来设计和实现一个用于管理图书信息的系统,包括对图书的基本信息进行添加、删除、修改和查询等核心功能。同时,项目还涉及到拦截器的使用...

    Struts2图书馆管理系统

    在Struts2框架中,`Struts2标签`是其核心组件之一,它们用于构建用户界面,使得开发者能够更加便捷地控制页面渲染和业务逻辑的交互。这些标签通常在JSP页面中使用,替代了传统的Java脚本和JSTL,使代码更易于阅读和...

    struts-2.3.15.3所以jar包

    2. **struts2-convention-plugin.jar**:此插件支持基于约定优于配置(Convention over Configuration)的开发模式,允许开发者省去大量的XML配置,只需按照一定的命名规则组织类和方法,Struts 2就能自动识别并进行...

    权限管理系统struts2.0+easyUI

    在权限管理系统中,EasyUI可以用于构建用户友好的界面,通过数据绑定技术与后台的Struts2 Action进行交互,实现数据的增删改查和权限配置。 结合Struts2和EasyUI,我们可以快速构建一个具备用户管理、角色管理和...

    struts

    - WEB-INF目录:包含web.xml配置文件,定义了Servlet容器的配置,以及struts-config.xml或struts2的struts.properties/struts.xml配置文件,定义了Struts框架的配置。 - resources目录:可能包含数据库连接配置文件...

    struts2+dwr实现省市县三级联动

    Struts2 是一个基于 Model-View-Controller(MVC)设计模式的 Java Web 框架,用于简化和标准化应用程序的开发流程,而 DWR(Direct Web Remoting)则是一个允许 JavaScript 在浏览器端与服务器端 Java 对象进行交互...

    Using Struts 2 - AppFuse 2 - Confluence(1).pdf

    这个页面通常会使用Struts 2的表单标签库来生成表单元素,例如文本框、下拉菜单等。为了提高用户体验,你可以考虑使用预定义的CSS样式,如Wufoo提供的样式,来美化表单布局。 #### 七、配置客户端和服务端验证 ...

    struts2_i18n

    在这个主题"struts2_i18n"中,我们将深入探讨Struts2框架中的国际化实现机制。 首先,了解i18n的基本概念是必要的。i18n代表“国际化”,这里的数字18代表'i'和'n'之间的字母数量。国际化是为了使软件能够适应不同...

    java 实现国际化 中英文语言切换

    如果你的应用使用Struts框架,Struts提供了内置的国际化支持。在 Struts 配置文件(struts-config.xml)中,你可以定义全局的 `message-resources` 元素,指定资源包的位置。在ActionForm或Action类中,可以使用 `...

    struts2框架写的增删查改完整例子

    Struts2是一个强大的Java web开发框架,用于构建和维护可扩展且易于管理的企业级应用程序。这个框架基于MVC(Model-View-Controller)设计模式,为开发者提供了丰富的功能,包括动作映射、拦截器、结果类型等,使得...

    ext+struts1.2图书管理系统

    文件名为 "bysj2" 的压缩包可能包含了该图书管理系统的源代码、配置文件、数据库脚本等相关资源。解压后,开发者可以研究其目录结构,理解 EXT 和 Struts1.2 如何协同工作,查看具体的 Action 类如何处理请求,以及 ...

    web小项目:省市区三级联动(struts2+json)

    在本项目中,Struts2可以集成JSON插件,使得Action可以直接返回JSON对象,前端JavaScript代码则可以解析这些JSON数据,动态更新下拉列表,实现三级联动效果。JSON对象通常包含省、市、区的ID和名称,前端根据这些...

    文章管理系统(struts+jsp)

    总的来说,这个“文章管理系统(struts+jsp)”项目涵盖了Java Web开发的多个重要知识点,包括MVC架构、Struts框架的使用、JSP页面设计、数据库操作、国际化、Web编辑器集成、分类管理、文章操作以及全文搜索。...

    学习struts很好的文档

    Struts支持通过配置资源文件实现国际化,使应用能够适应不同语言环境。 ##### 3.Validator验证框架 Validator框架是Struts的一个扩展,提供了丰富的验证规则,帮助开发者进行客户端和服务端的验证。 综上所述,...

    Struts2.0中文教程

    Struts2.0提供了一种更加灵活的控制器层,支持多种视图技术,如JSP、FreeMarker等,并引入了强大的拦截器(Interceptor)机制,增强了异常处理和国际化等功能。 二、Struts2.0的标签库 Struts2.0的标签库是其强大之...

    Struts Tutorial

    - **国际化设置**:在Struts配置文件中设置国际化选项,根据用户请求动态加载不同的资源文件。 #### 五、Struts表单处理 - **表单元素**:使用Struts标签库中的表单元素,如文本框、下拉列表等。 - **ActionForm类*...

    struts二级联动

    4. **配置文件**:在Struts配置文件(struts-config.xml)中,为Action类配置相应的映射,确保用户的选择能够正确地路由到Action。 5. **JavaScript**:为了实现联动效果,通常需要使用JavaScript或者jQuery来监听...

Global site tag (gtag.js) - Google Analytics