`

struts国际化,从资源文件读取异常信息

阅读更多

示例演示登录时从资源文件读取用户名或密码错误信息

logon.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html:html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>logon</title>
</head>
<body>
<html:form action="logon">
	<table border="0" width="100%">
		<tr>
			<th align="right"><bean:message key="login.user"/></th>
			<td align="left"><html:text property="username" size="20" maxlength="20"></html:text></td>
		</tr>
		<tr>
			<th align="right"><bean:message key="login.pwd"/></th>
			<td align="left"><html:password property="password" size="20" maxlength="20"></html:password></td>
		</tr>
		<tr>
			<td align="right"><html:submit>logonin</html:submit>	</td>
			<td align="left"><html:button property="register" >register</html:button><html:reset>reset</html:reset></td>
		</tr>
	</table>
</html:form>
</body>
</html:html>

 

action

 

package com.lwf.struts.action;

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;

import com.lwf.struts.form.LogonForm;

public class LogonAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		
		LogonForm logonForm = (LogonForm)form;
		String name = logonForm.getUsername();
		String pwd = logonForm.getPassword();
		
		
		ActionMessages errors = new ActionMessages();
		ActionForward forward = new ActionForward();
		if(pwd !=null && !pwd.equals("admin")){
			errors.add("logon", new ActionMessage("error.login.user"));
			
		}
		
		if(errors.size()<1){
			request.getSession().setAttribute("user", logonForm);
			forward = mapping.findForward("success");
		}else{
			saveErrors(request, errors);
			forward = mapping.findForward("error");
		}
		return forward;
	}

}

 

 

配置文件:

<action path="/logon" type="com.lwf.struts.action.LogonAction"
			name="logonForm" input="/index.jsp" scope="session" validate="true" />
<form-bean name="logonForm" type="com.lwf.struts.form.LogonForm"></form-bean>

 

 

资源文件:

ApplicationResources.properties

error.login.user		= user or password is not correct

 

ApplicationResources_zh_CN.txt

 

error.login.user		= 用户或密码不正确

 转化后的内容:

ApplicationResources_zh_CN.properties

error.login.user		= \u7528\u6237\u6216\u5bc6\u7801\u4e0d\u6b63\u786e

 

ApplicationResources_en_US.properties

error.login.user		= user or password is not correct

 

下面页面可供客户更改语言

changLang.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    <%@include file="share/html_head_taglib.jspf" %>
<!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>
</head>
<body>

<form action="changLangAction.do">
	<input type="radio" name="lang" value="zh"/>中文&nbsp;<input type="radio" name="lang" value="en"/>英文
	<br>
	<input type="submit" value="submit"/>
	</form>
</body>
</html>

 

package com.lwf.struts.action;

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;

public class ChangLangAction extends Action {

	public ActionForward execute(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String lang = request.getParameter("lang");
		lang = (lang == null) ? ""  : lang.trim();
		
		Locale locale = null;
		if(lang.equals("zh")){
			locale = new Locale("zh","cn");
		}else{
			locale = new Locale("en","us");
		}
		
		this.setLocale(request, locale);
		//request.getSession().setAttribute(Globals.LOCALE_KEY, locale);
		return mapping.findForward("success");
	}

}

 

分享到:
评论

相关推荐

    struts2 配置文件

    - `&lt;message-resources&gt;`: 国际化资源文件配置。 - `&lt;plug-in&gt;`: 插件配置。 ##### 2. 关键配置项 - **`&lt;form-bean&gt;`**: - 定义表单Bean的属性和验证规则。 - **`&lt;action-mapping&gt;`**: - 映射Action的执行逻辑...

    struts1 文件上传 文件下载

    Struts1是一个经典的Java Web框架,它为开发者提供了一种结构化的方式来构建MVC(Model-View-Controller)应用程序。在Struts1中,文件上传和下载是常见的功能,尤其在处理用户交互和数据交换时非常有用。下面将详细...

    struts数据库国际化

    Struts框架本身提供了一套完整的国际化解决方案,包括资源文件、标签库等。但在某些情况下,需要对数据库中存储的数据进行国际化处理,尤其是在数据直接存储为字符串时。 #### 四、数据库字符国际化组件 根据提供...

    struts2_uploadify带进度条的多文件上传下载

    Struts2提供了丰富的功能,包括动作调度、结果渲染、数据校验、国际化、异常处理等,极大地简化了Java Web开发。 Uploadify是一款基于jQuery的文件上传组件,它支持Ajax方式的异步上传,允许用户在上传文件过程中...

    struts2上传图国际资源

    在"struts2上传图国际资源"这个主题中,我们将深入探讨如何在Struts2框架下实现图片的上传以及国际资源文件的使用。 一、Struts2图片上传 1. **Action类的配置**:首先,你需要创建一个处理文件上传请求的Action类...

    Struts中 下载时点击取消异常解决包

    Struts2是一个流行的Java web框架,它为开发者提供...总的来说,解决Struts2文件下载取消时的异常,关键在于正确管理和控制文件流,以及及时响应用户的行为变化。通过以上策略,我们可以使应用更加健壮,提高用户体验。

    Struts1实现文件上传源码

    Struts1是一个经典的Java Web框架,它为开发者提供了一种结构化的MVC(Model-View-Controller)设计模式实现方式,极大地简化了Web应用的开发。在这个“Struts1实现文件上传源码”实例中,我们将深入探讨如何利用...

    struts1 实现文件上传下载

    在Struts1中实现文件上传和下载是常见的需求,这通常涉及到用户通过Web界面交互地上传文件到服务器,或者从服务器下载文件到本地计算机。 一、文件上传 1. **配置ActionForm**:首先,你需要创建一个继承自Struts...

    struts2文件上传下载实例

    接下来,`src`目录是源代码存放的地方,通常包括Java源文件、配置文件和资源文件。在Struts2中,我们需要创建一个Action类来处理文件上传和下载的业务逻辑。Action类会实现Struts2的特定接口,如`ActionSupport`,并...

    Struts2 下载取消报异常最终解决办法

    - **优化流读写策略**:避免一次性加载整个文件到内存,而是分块读取和写入,减少内存消耗,同时降低因用户取消导致的资源浪费。 4. **实际应用示例** - 创建一个继承自`ActionSupport`的类,定义一个方法处理...

    struts1.2实现动态多文件上传

    这通常涉及到文件流的读写操作,需要注意文件的安全性和异常处理。 最后,根据文件上传是否成功,我们可以将用户重定向到不同的页面,比如“success.jsp”表示上传成功,“error.jsp”表示上传失败。 总的来说,...

    struts常见异常及处理

    - 检查 Struts 配置文件是否正确加载,通常此类问题与配置文件读取失败有关。 #### 7. “Cannot retrieve mapping for action XXX” - **异常描述**:试图访问一个在 Struts 配置文件 `struts-config.xml` 中...

    struts2中文件上传过滤codeFilter

    - **防止文件包含漏洞**:确保在渲染上传文件时不会直接包含文件路径,以防止恶意用户构造URL执行任意文件读取。 - **文件存储安全**:将上传文件存储在安全的目录,避免它们被直接访问或暴露敏感信息。 - **权限...

    Struts实现文件上传、下载(导入直接运行)

    在Struts中,我们可以创建一个Action,该Action负责读取文件内容并设置响应头,如Content-Type(表示文件类型)和Content-Disposition(告诉浏览器如何处理文件,如作为附件下载)。然后,使用Servlet的OutputStream...

    android客户端上传文件,struts2服务端接收

    在Android应用开发中,文件上传是一项常见的功能,通常用于用户分享图片、文档等信息到服务器。Struts2作为Java Web框架,提供了处理文件上传的能力。本篇将详细讲解如何实现Android客户端上传文件以及Struts2服务端...

    知识共享-struts1.2配置文件详解(雷惊风).

    `&lt;init-param&gt;` 元素用于设置servlet的初始化参数,其中 `config` 参数尤为重要,它指定了Struts框架配置文件(struts-config.xml)的相对路径,这是Struts ActionServlet专有的配置,确保Struts能够正确读取配置...

    我的struts2的总结

    原文中的“struts.custom.i18n.resources”配置项用于指定Struts2的国际化资源文件。通过设置这一配置项,开发者可以自定义错误消息和提示信息,从而实现应用程序的多语言支持。例如,“struts.i18n.encoding”配置...

    Struts2中文件下载&&zip 文件的压缩

    在Struts2中处理文件下载和压缩功能是常见的需求,这通常涉及到用户请求从服务器获取文件或者打包多个文件为一个ZIP压缩包。下面将详细介绍这两个知识点。 **文件下载** 在Struts2中,文件下载可以通过Action类来...

    flex struts2文件上传

    Flex Struts2文件上传是一个常见的Web开发任务,它涉及到客户端与服务器端的数据交互,特别是涉及用户界面和后端服务之间的文件传输。Flex是Adobe开发的一个富互联网应用(RIA)框架,用于创建动态、交互式的用户...

    struts2 文件的上传和下载

    2. **配置Action**:在Struts2的Action类中,需要定义一个字段来接收上传的文件,这个字段通常使用Apache的Commons FileUpload库中的`FileItem`接口或者`FileUploadException`异常类型。 3. **配置Struts2拦截器**...

Global site tag (gtag.js) - Google Analytics