复习struts2之输出带有占位符的国际化信息

在一个大型应用中,整个应用有大量的内容需要实现国际化,如果我们把国际化的内容都放置在全局资源属性文件中,显然会导致资源文件变的过于庞大、臃肿,不便于维护,这个时候我们可以针对不同模块,使用包范围来组织国际化文件。 
方法如下: 
在java的包下放置package_language_country.properties资源文件,package为固定写法,处于该包及子包下的action都可以访问该资源。当查找指定key的消息时,系统会先从package资源文件查找,当找不到对应的key时,才会从常量struts.custom.i18n.resources指定的资源文件中寻找。
实例:
在与action同一个包下新建个文件,名字为package_zh_CN.properties
welcome= package:{0}\uFF0C\u6B22\u8FCE\u6765\u5230\u4F20\u667A\u64AD\u5BA2{1}
在src下新建一个配置文件,名字为csdn_zh_CN.properties
welcome= all{0}\uFF0C\u6B22\u8FCE\u6765\u5230\u4F20\u667A\u64AD\u5BA2{1}
通过action访问
struts.xml文件:
	<constant name="struts.custom.i18n.resources" value="csdn" />
	<package name="itcast" namespace="/test" extends="struts-default">
		<action name="manage" class="cn.csdn.action.ManageAction">
			<result name="message">/WEB-INF/page/message.jsp</result>
		</action>
	</package>
Action中的方法:
public class ManageAction extends ActionSupport{
	@Override
	public String execute() throws Exception {
		ActionContext.getContext().put("message", this.getText("welcome",new String[]{"小明","玩"})) ;
		return "message";
	}
}
重新加载后再次运行时,输出的内容为
package:小明,欢迎来到传智播客玩

通过jsp 访问:
Index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>国际互</title>
</head>
<body>
	<s:text name="welcome">
		<s:param>李明明</s:param>
		<s:param>学习</s:param>
	</s:text>
</body>
</html>
浏览器输出结果:
all李明明,欢迎来到传智播客学习
jsp中的写法默认的访问的就是全局的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值