xienan123 发表于 2013-2-7 17:25:59

Struts2中加载资源文件的方式(转载)

下面小编要和大家分享的是Struts2中的加载资源文件的方式!对于一个大型的应用而言,可能资源文件非常庞大,因此有必要将它分成多个较小的文件,Struts2可以指定包范围资源文件,类范围资源文件,以及临时指定资源文件。
 
1,包范围资源文件
Struts2指定包范围资源文件的方法是:在包的根目录下建立多个名为package_<language>_<country>.properties文件,这个文件的命名同普通资源文件的命名方式一样。建立了此文件之后,该包下的所有Action都可以访问资源文件。例:我们在lee这个包下建立多个资源文件,文件名分别为:package.properties,package_en_US.properties,package_zh_CN.properties;那么在此包中所有的Action都可以获取资源文件,获取的方式同普通的一样,如下:getText("succTip")。如果存在包资源文件,则包资源文件中的内容将优先于普通的资源文件。
 
2,Action范围资源文件
Struts2还允许为Action单独指定一份国际化资源文件。它的方式为:在Action类文件所在的路径下建立多个文件名为<ActionName>_<language>_<country>.properties文件。例:在LoginAction的同目录下建立多个资源文件:LoginAction.properties,LoginAction_en_US.properties,LoginAction_zh_CN.properties;那么这个资源文件仅对此Action开放。获取资源文件中内容的方式不变。如果存在Action范围资源文件,则此文件中的内容将优先于所有的资源文件。
 
3,临时指定资源文件
Struts的页面有一个标签<s:i18n>,可以通过它来指定资源文件的位置。这个标签一般可做为其它标签的父标签,这样其它标签所读取的内容就是<s:i18n>标签所指定的资源文件中的内容。用法如下:
 
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title>
<s:i18n name="tmp">
<s:text name="loginPage"/>       //读取WEB\INF\classes\tmp.properties资源文件中的loginPage的内容
</s:i18n>
</title>
</head>
<body>
<s:i18n name="tmp">
<s:form action="Login">
<s:textfield name="username" key="user"/>
<s:textfield name="password" key="pass"/>
<s:submit key="login"/>
</s:form>
</s:i18n>
</body>
</html>
通常若查找不到所需要的资源文件中的内容,都是直接输出KEY的字符串值
出处:  程序员之家 http://www.sunxin.org/
页: [1]
查看完整版本: Struts2中加载资源文件的方式(转载)