示例演示登录时从资源文件读取用户名或密码错误信息
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"); } }