国际化动态文本(MessageFormat)的使用案例源码和国际化其他标签的使用

国际化动态文件和其他标签的实例应用

一 动态文件的概念

1.什么时候使用动态文本

如果字符串中包含了多个与国际化相关的数据,可以使用MessageFormat类对这些数据进行批量处理 ----比如一段字符串中包含时间、数字、货币、、可以进行批量处理

2.如何使用动态文本---批量处理

(1)MessageFormat类允许开发人员用占位符替换掉字符串中的敏感数据(即国际化相关的数据)。

(2)MessageFormat类在格式化输出包含占位符的文本时,messageFormat类可以接收一个参数数组,以替换文本中的每一个占位符。

(3)批量处理是把国际化的文件用占位符代替,组成一个数组

二 动态文本的使用

1.在java中动态文本的使用

(1)把字符串改为(模式字符串)占位符

At 12:30 pm on jul 3,1998, a hurricance destroyed 99 houses and caused $1000000 of damage

代替为:

模式字符串:

pattern =At [0], a hurricance destroyed [1] houses and caused [2] of damage

(2)设置动态文本的模型,并指明显示的国家,可以值确定模式,默认的国家的当地的

MessageFormat mf = new MessageFormat(pattern, Locale.US);

(3)创建数组为模式字符串赋值(为占位符赋值)

Object[] objs = { new Date(), new Integer(99), new Double(1e7)};

(4)格式转换并输出

String result = mf.format(objs);

System.out.println(result);

注:按以上的说法,只是固定的把它写到了java文件中,可以把模式字符串部署到资源组中

2.在jsp页面中动态文本的运用----标签的使用

(1)创建资源包对象,并存在bundle对象中

<fmt:setBundle basename="com.hbsi.resource.MyResource" var="bundle" scope="request"/>

(2)读取并输出

<fmt:message key="title" bundle="${bundle}">

<!-- 为占位符赋值 ----------- 批量处理-->

<fmt:param value="${date}" ></fmt:param>

<fmt:param value="${number1}"></fmt:param>

<fmt:param value="${number2}"></fmt:param>

</fmt:message>

注:如果在<fmt:message>标签中,没有key属性,可以在<fmt:message>的双标签中写上在value中写的文件中的键,例:

<fmt:message bundle="${bundle}">

title

<fmt:param value="${date}" ></fmt:param>

<fmt:param value="${number1}"></fmt:param>

<fmt:param value="${number2}"></fmt:param>

</fmt:message>

三 国际化中其他标签的使用

1.乱码问题

用java方法解决

<%

request.setCharacterEncoding("utf-8");

%>

--%>

用国际化标签设置

<fmt:requestEncoding value="utf-8"/>

2.设置时区

(1)<fmt:timeZone>标签

<fmt:timeZone value="GMT+08:00">

</fmt:timeZone>

注:<fmt:timeZone>设置时区 ,但是他的设置值只对标签体中的内容有效

(2)<fmt:setTimeZone>标签

设置时间

<jsp:useBean id="date" class="java.util.Date"></jsp:useBean>

<fmt:setTimeZone value="GMT+08:00" />

<%---日期类型的转换 --%>

格式一

<fmt:formatDate value="${date}" type="both" dateStyle="long" timeStyle="short" var="time1" scope="request" /><br/>

${time1}

格式二

<fmt:setTimeZone value="GMT+07:00" />

<fmt:formatDate value="${date}" type="time" timeStyle="full" />

格式三

<fmt:formatDate value="${date}" pattern="yyyy.MM.dd HH:sss.SSS a"/>

3.反解析的JSTL

<fmt:parseDate value="2011年11月15日 上午10:56" type="both" dateStyle="long" timeStyle="short" var="date2" scope="request"></fmt:parseDate>

${date2}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值