Struts2 国际化配置i18n

Struts2提供对页面及程序数据的国际化(i18n)功能。接下来我们看看如何开发?

1 准备国际化资源文件

在src目录下建立resources目录,创建两个文件

message_en_US.properties:该文件为英文国际化资源文件,内容如下:

loginInfo=LOGIN PAGE
user=USER NAME
password=PASSWORD
loginbtn=LOGIN

message_zh_CN.properties:该文件为中文国际化资源文件,内容如下:

loginInfo=\u767B\u5F55\u9875\u9762
user=\u7528\u6237\u540D
password=\u5BC6\u7801
loginbtn=\u767B\u5F55

2 struts.xml配置国际化文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	"http://struts.apache.org/dtds/struts-2.5.dtd">
	
<struts>
	<!-- 加载国际化资源文件 -->
	<constant name="struts.custom.i18n.resources" value="resources.message"></constant>

3 编写JSP页面进行国际化

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>一点教程-struts2的国际化</title>
  </head> 
  <body>
  <h3><s:text name="loginInfo"/></h3>
  <form action="demo1.action" method="post">
  	<s:text name="user"/>:<input type="text" name="userName"/><br/>
  	<s:text name="password"/>:<input type="password" name="userPwd"/><br/>
  	<input type="submit" value="<s:text name="loginbtn"/>"/>
  </form>
  </body>
</html>

其中<s:text name="属性名"/>标签用于到国际化资源文件获取对应的属性值。

4 访问测试

以Google浏览器为例

1)把浏览器语言设置为"中文"

页面显示效果为:

 

2)把浏览器语言设置为"英文"

页面显示效果为:

5 在Action程序进行国际化

package com.yiidian.action;
import com.opensymphony.xwork2.ActionSupport;
/**
 * @author 一点教程(yiidian.com)
 */
public class Demo1Action extends ActionSupport{
	@Override
	public String execute() throws Exception {
		//获取国际化资源文件信息
		String user = this.getText("user");
		System.out.println(user);	
		return SUCCESS;
	}
}

访问Action时,切换不同浏览器语言,同样可以看到信息的变化。

 

源码下载:https://pan.baidu.com/s/1qgZMs6-cL0_NQ_KuMg3KTQ

热门文章

优秀文章