<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、概念 國際化:界面上的語言可以根據用戶所在的地區改變顯示語言。 如圖: ![](https://box.kancloud.cn/2016-02-22_56caddfa3150a.jpg) ## 二、實例 下面就一步一步的教大家利用Struts實現國際化。 ### 1、編寫資源文件 這個資源文件就是界面上顯示的字符,資源文件里面包含英文和中文的資源文件這樣我們就可以轉換資源文件來實現把界面上的中文、英文互相轉化。 [這里下載資源文件>>](http://download.csdn.net/detail/gwblue/7067467) ### 2、編寫相關界面。 Index.jsp ~~~ <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <a href="login.jsp">登錄</a> <br> <a href="changeLang.do?lang=zh">中文</a> ???<a href="changeLang.do?lang=en">英文</a> <p> </body> </html> ~~~ login.jsp ~~~ <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <!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=GB18030"> <title>Insert title here</title> </head> <body> <%-- <font color="red"> <html:messages id="msg" property="error_1"> <bean:write name="msg"/> </html:messages> </font> <font color="blue"> <html:messages id="msg" property="error_2"> <bean:write name="msg"/> </html:messages> </font> --%> <html:errors/> <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> </body> </html> ~~~ login_success.jsp ~~~ <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <!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=GB18030"> <title>Insert title here</title> </head> <body> <html:messages id="msg" message="true"> <bean:write name="msg"/> </html:messages> </body> </html> ~~~ login_error.jsp ~~~ <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%> <%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%> <!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=GB18030"> <title>Insert title here</title> </head> <body> <font color="red"> <html:messages id="msg" property="error_1"> <bean:write name="msg"/> </html:messages> </font> <font color="blue"> <html:messages id="msg" property="error_2"> <bean:write name="msg"/> </html:messages> </font> </body> </html> ~~~ ### 3、編寫相關的類 ChangeLanguageAction.java ~~~ package com.bjpowernode.struts; import java.util.Locale; 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; /** * 完成語言的手動切換 * @author Administrator * */ public class ChangeLanguageAction extends Action { @Override public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 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"); } } ~~~ LoginAction.java ~~~ package com.bjpowernode.struts; 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(); 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"); } } ~~~ LoginActionForm.java ~~~ package com.bjpowernode.struts; import org.apache.struts.action.ActionForm; /** * 登錄ActionForm,負責表單收集數據 * 表單的屬性必須和ActionForm中的get和set的屬性一致 * @author Administrator * */ @SuppressWarnings("serial") public class LoginActionForm extends ActionForm { private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } ~~~ PasswordErrorException.java ~~~ package com.bjpowernode.struts; public class PasswordErrorException extends RuntimeException { public PasswordErrorException() { // TODO Auto-generated constructor stub } public PasswordErrorException(String message) { super(message); // TODO Auto-generated constructor stub } public PasswordErrorException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub } public PasswordErrorException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } } ~~~ UserManager.java ~~~ package com.bjpowernode.struts; public class UserManager { public void login(String username, String password) { if (!"admin".equals(username)) { throw new UserNotFoundException(); } if (!"admin".equals(password)) { throw new PasswordErrorException(); } } } ~~~ UserNotFoundException.java ~~~ package com.bjpowernode.struts; public class UserNotFoundException extends RuntimeException { public UserNotFoundException() { // TODO Auto-generated constructor stub } public UserNotFoundException(String message) { super(message); // TODO Auto-generated constructor stub } public UserNotFoundException(Throwable cause) { super(cause); // TODO Auto-generated constructor stub } public UserNotFoundException(String message, Throwable cause) { super(message, cause); // TODO Auto-generated constructor stub } } ~~~ ### 4、對struts-config.xml的配置。 ~~~ <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> <struts-config> <form-beans> <form-bean name="loginForm" type="com.bjpowernode.struts.LoginActionForm"/> </form-beans> <action-mappings> <action path="/login" type="com.bjpowernode.struts.LoginAction" name="loginForm" scope="request" > <forward name="success" path="/login_success.jsp" /> <forward name="error" path="/login.jsp"/> </action> <action path="/changeLang" type="com.bjpowernode.struts.ChangeLanguageAction" > <forward name="index" path="/index.jsp"/> </action> </action-mappings> <message-resources parameter="resources.MessageResources" /> </struts-config> ~~~ ##三、感想。 國際化用到的地方很多,大型網站都有國際化文件。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看