要使用资源包从属性文件检索消息,必须了解Struts2的资源包搜索顺序:
资源包中搜索按以下顺序:
请参阅Struts2资源包文档详细解释。
在实践中,是不可能组织属性的文件的顺序。所以,只要了解几个常用的搜索顺序应该是足够了: package.properties 和 global resource properties。参见下图:
如果com.yiibai.user.action.LoginAction想通过资源包获得消息,它将搜索
明白这搜索顺序可以给你更多的信心来决定正确的文件夹的属性文件。
下面是访问该资源包的几个例子:
P.S ‘username.required‘ 和 ‘username‘ 在一个属性文件中的键。
在Action类,可以扩展了ActionSupport和通过getText(‘key’) 函数获取资源包。
...
public class LoginAction extends ActionSupport{
...
public void validate(){
if("".equals(getUsername())){
addFieldError("username", getText("username.required"));
}
}
}
在属性标记,使用 getText(‘key’).
<s:property value="getText('username')" />
在text标签,设置“name”属性的键。
<s:text name="username" />
UI组件的主要属性有特殊的功能,查看这个key属性例子详细信息。
<s:textfield key="username" />
国际化i18n 标签可以从“name”属性声明指定资源包得到消息。在这个例子中,它要求从com/yiibai/user/package.properties文件中以获得 “username” 的消息。
<s:i18n name="com.yiibai.user.package" >
<s:text name="username" />
</s:i18n>
访问 URL http://localhost:8080/struts2resourcebundle/user/login.action,输出以下结果:
下载完整的项目实践(struts2resourcebundle) – http://pan.baidu.com/s/1dD2UQ2l