struts国际化,从资源文件读取异常信息
程序员文章站
2022-05-24 11:08:13
...
示例演示登录时从资源文件读取用户名或密码错误信息
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"/>中文 <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");
}
}
上一篇: jquery 上传文件并获取文件名称
下一篇: jQuery对象与DOM对象的区别