i18ntagaction.java
package com.h3.common.action; import com.opensymphony.xwork2.actionsupport; public class i18ntagaction extends actionsupport{ public string execute() throws exception { return success; } }
i18ntagaction.properties
i18n.msg = "this is a message from i18ntagaction.properties"
custom.properties
i18n.msg = "this is a message from custom.properties"
下面显示<s:i18n>标签的使用。
i18n.jsp
<%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> </head> <body> <h1>struts2 <s:i18n>标签示例 - www.h3.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/h3/common/action/custom"> <s:text name="i18n.msg" /> </s:i18n> </body> </html>
它是如何工作的?
1.在示例1中,它会得到来自资源包的消息(i18ntagaction.properties)这是关想当前的操作类 (i18ntagaction.java)
2.在例2中,它会从“custom.properties”属性的文件得到消息,这个文件放在 com/h3/common/action/ 文件
<s:i18n name="com/h3/common/action/custom.properties"> <s:text name="i18n.msg" /> </s:i18n>
正确的方式 :
<s:i18n name="com/h3/common/action/custom"> <s:text name="i18n.msg" /> </s:i18n>
<?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.h3.common.action.i18ntagaction" > <result name="success">pages/i18n.jsp</result> </action> </package> </struts>
http://localhost:8080/struts2i18ntag/i18ntagaction.action
在浏览器中打开上面的url,显示结果如下: