当前位置: 首页 > 教程 > Struts2 >

Struts2 <s:i18n>标签示例

精华
小牛编辑
161浏览
2023-03-14
Struts2 <s:i18n>标签是用来从声明的资源包获得消息,   不只是使用当前操作相关联的资源包。看下面一个完整的<s:i18n>标签的例子:

1. 动作

Action类转发请求。

I18nTagAction.java

package com.yiibai.common.action;

import com.opensymphony.xwork2.ActionSupport;
 
public class I18nTagAction extends ActionSupport{

	public String execute() throws Exception {
		
		return SUCCESS;
	}
}

2. 属性文件

两个属性文件作为演示。

I18nTagAction.properties

i18n.msg = "This is a message from I18nTagAction.properties"

Custom.properties

i18n.msg = "This is a message from Custom.properties"

3. <s:i18n>标签示例

下面显示<s:i18n>标签的使用。

i18n.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
</head>
 
<body>
<h1>Struts2 <s:i18n>标签示例 - www.yiibai.com</h1>

<h2>1.Get message from I18nTagAction.properties</h2> 
Output : 
<s:text name="i18n.msg" />

<h2>2.Get message from Custom.properties</h2> 
Output : 
<s:i18n name="com/yiibai/common/action/Custom">
	<s:text name="i18n.msg" />
</s:i18n>

</body>
</html>

它是如何工作的?

1.在示例1中,它会得到来自资源包的消息(I18nTagAction.properties)这是关想当前的操作类 (I18nTagAction.java)

2.在例2中,它会从“Custom.properties”属性的文件得到消息,这个文件放在 com/yiibai/common/action/ 文件

不要放 .properties 后缀
一个常见的错误,在国际化的标签,如果声明属性名为.properties后缀的文件,在Struts2将未能从声明的资源包获得消息。
错误的方式:
<s:i18n name="com/yiibai/common/action/Custom.properties">
	<s:text name="i18n.msg" />
</s:i18n>

正确的方式 :

声明的属性文件没有 .properties 后缀。
<s:i18n name="com/yiibai/common/action/Custom">
	<s:text name="i18n.msg" />
</s:i18n>

4. 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>
 	<constant name="struts.devMode" value="true" />
	<package name="default" namespace="/" extends="struts-default">
	
		<action name="i18nTagAction" 
			class="com.yiibai.common.action.I18nTagAction" >
			<result name="success">pages/i18n.jsp</result>
		</action>
		
	</package>
</struts>

5. 示例

http://localhost:8080/struts2i18ntag/i18nTagAction.action

在浏览器中打开上面的URL,显示结果如下:

参考

  1. Struts2 <s:i18n>标签文档
下载代码 - http://pan.baidu.com/s/1c0mHDlA