Struts 2 –资源包示例

要使用资源包从属性文件中检索消息,您必须了解Struts 2资源包搜索顺序:

资源包搜索顺序

资源束按以下顺序搜索:

  1. ActionClass.properties
  2. Interface.properties
  3. BaseClass.properties
  4. ModelDriven的模型
  5. package.properties
  6. 搜索i18n消息密钥层次结构本身
  7. 全局资源属性

有关详细说明,请参阅Struts 2 Resource Bundle文档

嗨,Struts 2,您搜索太多,如果找不到属性文件,则涉及太多的搜索顺序和性价比。

实际上,按上述顺序组织属性文件是完全不可能的。 因此,只需了解几个常用的搜索顺序就足够了: ActionClass.propertiespackage.propertiesGlobal resource properties 。 见下图:

Struts 2 resource bundle

如果com.mkyong.user.action.LoginAction要通过资源包获取消息,它将搜索

  1. com.mkyong.user.action.LoginAction.properties(找到,退出,否则返回下一个)
  2. com.mkyong.user.action.package.properties(找到,退出,否则下一个)
  3. com.mkyong.user.package.properties(找到出口,否则返回下一步)
    …在每个父目录中一直找到根目录的package.properties
  4. 如果在应用程序中进行配置,则查找全局资源属性

了解此搜索顺序可以使您更加自信地确定属性文件的正确文件夹。

获取资源包

很少有访问资源包的示例:

PS“username.required”和“ 用户名 ”是在属性文件中的关键。

1.动作课

在Action类中,您可以扩展ActionSupport并通过getText('key')函数获取资源包。

...
public class LoginAction extends ActionSupport{
	...
	public void validate(){
		if("".equals(getUsername())){
			addFieldError("username", getText("username.required"));
		}
	}
}

2.属性标签

在属性标签中,使用getText('key')。

<s:property value="getText('username')" />

3.文字标签

在文本标签中,在“名称”属性中设置关键字。

<s:text name="username" />

4.关键属性

UI组件的Key属性具有特殊功能,请在此key属性示例中查看详细信息。

<s:textfield key="username" />

5. I18n标签

此i18n标记可以从在“名称”属性中声明的指定资源束中获取消息。 在此示例中,它要求从com / mkyong / user / package.properties文件中获取“用户名”消息。

<s:i18n name="com.mkyong.user.package" >
     <s:text name="username" />
</s:i18n>

下载完整的练习项目– Struts2-Resource-Bundle-Example.zip

参考

  1. Struts2中的全局资源包
  2. Struts 2键属性示例
  3. Struts 2资源包搜索顺序文档

翻译自: https://mkyong.com/struts2/struts-2-resource-bundle-example/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值