struts2的國際化(即實現中英文切換)例項
阿新 • • 發佈:2018-12-19
今天學習了國際化例項,也就是實現中文和英文的切換。
注:本部落格有部分程式碼參考阿木俠的部落格內容。
1、首先實現國際化對我們的專案要求是搭建好Struts2框架
2、我們要編寫jsp頁面在這個jsp頁面上測試結果
下面附上建立的login.jsp的程式碼:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <% 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></title> </head> <body> <s:i18n name="globalMessages"> <s:text name="check"></s:text>: <a href="login.action?request_locale=zh_CN"><s:text name="chinese"></s:text></a> <a href="login.action?request_locale=en_US"><s:text name="english"></s:text></a> <br/> <h3><s:text name="title"></s:text></h3> <s:form action="login" method="post"> <table> <tr> <td><s:text name="username" /></td> <td><s:textfield name="name" /></td> </tr> <tr> <td><s:text name="password" /></td> <td><s:password name="password" /></td> </tr> <tr> <td> </td> <td><s:submit value="%{getText('login')}" /></td> </tr> </table> </s:form> </s:i18n> </body> </html>
這裡有一個i18n,他就是Internationalization(國際化)的英文縮寫,為什麼是i18n呢?
因為Internationalization去掉頭尾的i和n剛好還剩下18個字元。
3、然後我們編寫一個Action
這裡我建立的action名字為LoginAction,這裡程式碼如下,我沒有加別的驗證資訊,為了讓他直接能實現中英文切換。程式碼如下:
package com.hnpi.action; import com.opensymphony.xwork2.ActionSupport; public class LoginAction extends ActionSupport{ public String execute(){ return "success"; } }
4、下面我們就需要建立資原始檔了
資原始檔的內容基本是key-value對,其中key是程式使用的部分,而value是程式的顯示部分。
這裡我建立的資原始檔名稱為:globalMessages_zh_CN.properties(中文):
globalMessages_en_US.properties(英文):
這裡注意檔案的格式為.properties。不要建錯了。
5、最後我們就要對Struts.xml進行配置了
這個是實現中英文切換的一個核心,這裡面錯了就會導致切換不了。程式碼如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <constant name="struts.costom.i18n.resources" value="globalMessages"/> <package name="default" extends="struts-default" namespace="/"> <action name="login" class="com.hnpi.action.LoginAction"> <result name="success">/login.jsp</result> </action> </package> </struts>
然後我們就可以部署Tomcat進行運行了:
以上就是我的國際化例子的詳細介紹。有錯誤的地方還請各位多多指正。