第一步,在工程src目錄下新建屬性文件struts.properties,內容如下:
struts.custom.i18n.resources=globalMessages
第二步,在工程src目錄下新建屬性文件globalMessages_zh_CN.properties,內容如下:
HelloWorld=/u4f60/u597d
第三步,在工程src目錄下新建屬性文件globalMessages_en_US.properties,內容如下:
HelloWorld=Hello World
第四步,實現處理表單的Action,HelloWorld代碼如下:
- package com.dadao.struts2;
- import java.util.Locale;
- import com.opensymphony.xwork2.ActionSupport;
- import com.opensymphony.xwork2.util.LocalizedTextUtil;
- public class HelloWorld extends ActionSupport {
- private static final long serialVersionUID = 1L;
- private Locale loc;
- private String message;
- @Override
- public String execute() throws Exception {
- message=LocalizedTextUtil.findDefaultText("HelloWorld",loc);
- return SUCCESS;
- }
- public Locale getLoc() {
- return loc;
- }
- public void setLoc(Locale loc) {
- this.loc = loc;
- }
- public String getMessage() {
- return message;
- }
- }
第五步,實現轉換器LocalConverter,代碼如下:
- package com.dadao.struts2;
- import java.util.Locale;
- import java.util.Map;
- import ognl.DefaultTypeConverter;
- public class LocalConverter extends DefaultTypeConverter {
- @Override
- public Object convertValue(Map context, Object value, Class toType) {
- if(toType==Locale.class){
- String local=((String[])value)[0];
- return new Locale(local.substring(0,2),local.substring(3));
- }else if(toType==String.class){
- Locale local=(Locale)value;
- return local.toString();
- }
- return null;
- }
- }
- 第六步,在工程src目錄下新建屬性文件xwork-conversion.properties,內容如下:
- java.util.Locale=com.dadao.struts2.LocalConverter
- 第七步,配置struts.xml文件,代碼如下:
-
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE struts PUBLIC
- "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
- "http://struts.apache.org/dtds/struts-2.0.dtd">
- <struts>
- <package name="strutsPackage" extends="struts-default">
- <action name="HelloWorld" class="com.dadao.struts2.HelloWorld">
- <result>/index.jsp</result>
- </action>
- </package>
- </struts>
第八步,完成index.jsp,代碼如下:
-
- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
- <%@ taglib uri="/struts-tags" prefix="s" %>
- <%
- 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>
- </head>
- <body>
- <s:form action="HelloWorld" method="post">
- input language:<s:textfield name="loc"></s:textfield>
- <br><s:submit></s:submit>
- </s:form>
- <s:property value="message"/>
- </body>
- </html>
第九步,測試,
-
可在文本框中輸入"en_US"和"zh_CN",並提交,查看效果