国际化标签 语法用法

本文详细介绍了JSTL中fmt标签的使用,包括标签的语法和应用场景。通过实例展示了如何进行日期、时间、数字的格式化和解析,以及设置请求编码和时区。
摘要由CSDN通过智能技术生成
 

8.4.5  <fmt:message>标签

<fmt:message>标签用于从一个资源包中读取信息并进行格式化输出,它有如下一些使用语法格式:

语法1,没有标签体的情况:

<fmt:message key="messageKey"  

            [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"] />

语法2,在标签体中指定格式化文本串中的占位符参数的情况:

<fmt:message key="messageKey"

            [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"]>

    <fmt:param>subtags

</fmt:message>

语法3,在标签体中指定消息关键字和可选择的占位符参数:

<fmt:message [bundle="resourceBundle"]

            [var="varName"]

            [scope="{page|request|session|application}"]>

    key

    optional <fmt:param>subtags

</fmt:message>

<fmt:message>标签的属性说明如表8.15所示。

表8.15  <fmt:message>标签的属性

属性名

是否支持EL

属性类型

属 性 描 述

key

true

String

指定要输出的信息的关键字

bundle

true

LocalizationContext

指定ResourceBundle对象在Web域中的属性名称

var

false

String

用于指定将格式化结果保存到某个Web域中的某个属性的名称

scope

false

String

指定将格式化结果保存到哪个Web域中

<fmt:message>标签有如下一些特性:

l         如果指定的资源不存在,输出“???<key>???”形式的错误信息。

l         如果ResouceBundle中不存在key属性指定的信息,输出“???<key>???”形式的错误信息。

l         如果key属性的值为null或空字符串,输出“??????”形式的错误信息。

l         如果没有指定var属性,<fmt:message>标签将直接输出格式化的结果;如果指定了var属性,则<fmt:message>标签将格式化的结果保存在scope属性指定的Web域中,保存在Web域中的属性名称为var属性指定的值。如果指定了scope属性,就必须指定var属性。

l         要输出的消息的关键字可以使用key属性指定,也可以在标签体中指定。如果<fmt:message>标签嵌套在<fmt:bundle>标签内,并且<fmt:bundle>标签设置了prefix属性,则该属性的值追加到<fmt:message>标签指定的关键字的前面。

l         可以通过在<fmt:message>标签内嵌套<fmt:param>标签来指定格式化文本串中的占位符的参数值,每个<fmt:param>标签分别设置一个参数,各个<fmt:param>标签的顺序与格式化字符串的参数相对应,即第一个<fmt:param>标签对应于格式化字符串中的第一个参数,第二个<fmt:param>对应于格式化字符串中的第二个参数,依次类推。

l         如果<fmt:message>标签处理的格式化文本串中包含有参数,但其中没有嵌套与该参数对应<fmt:param>标签,则直接输出该参数在格式化文本串中的原始形式。

 

例程8-30是一个使用<fmt:message>标签的例子程序。

例程8-30  fmt_message.jsp

 


<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<%@ page contentType="text/html;charset=gb2312" %>

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

<%

       session.setAttribute("number", new Integer(8888888));

%>

<fmt:setBundle basename="org.it315.greetings" var="greetings" />

&lt;fmt:message&gt;标签内嵌套&lt;fmt:param&gt;标签的情况:<br />

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

       org.it315.okKey

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

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

</fmt:message><br /><hr />

&lt;fmt:message&gt;标签内没有嵌套&lt;fmt:param&gt;标签的情况:<br />

<fmt:bundle basename="org.it315.greetings" prefix="org.it315.">

       <fmt:message key="okKey" />

</fmt:bundle>      

 


例程8-30的运行结果如图8.25 所示。

图8.25

8.4.6  <fmt:param>标签

<fmt:param>标签用于为格式化文本串中的占位符设置参数值,它只能嵌套在<fmt:message>标签内使用。<fmt:param>标签有如下两种语法格式:

语法1,用value属性指定参数值:

<fmt:param value="messageParameter" />

语法2,在标签体中指定参数的值的情况:

<fmt:param>

    body content

</fmt:param>

说明:<fmt:param>标签的value属性的类型是java.lang.Object,它支持动态属性值。在前面的例程中已经多次使用了<fmt:param>标签,这里就不再对<fmt:param>标签进行举例讲解了。

8.4.7  <fmt:requestEncoding&

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值