9.4.2 <fmt:bundle>标签

优质
小牛编辑
131浏览
2023-12-01

<fmt:bundle>标签用于创建ResourceBundle对象实例,该对象实例只在<fmt:bundle>标签体中有效。<fmt:bundle>标签的语法格式如下:

<fmt:bundle basename="basename" [prefix="prefix"]>

    body content

</fmt:bundle>

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

表9.14  <fmt:bundle>标签的属性

属性名

是否支持动态属性值

属性类型

属性描述

basename

true

String

指定创建ResourceBundle对象实例的基名。实际上,该属性值就是ResourceBundle类的getBundle方法的参数值。该方法用于返回ResourceBundle对象实例。

prefix

true

String

该属性值将作为<fmt:message>标签的key属性值的前缀,与key属性值共同组成资源信息的key值。

使用prefix属性指定<fmt:message>标签的key属性值的前缀时,key属性值不能再包含前缀部分。

bundle.jsp页面是一个使用<fmt:bundle>标签创建ResourceBundle对象实例,并输出资源信息的例子,代码如下:

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
未使用prefix属性指定前缀<br>
<jsp:useBean id="now" class="java.util.Date" />
<fmt:bundle basename="resources.I18nResource">
    <fmt:message key="i18n.welcome" />
    <br>
    <fmt:message key="i18n.datetime">
        <fmt:param value="${now}" />
        <fmt:param value="${now}" />
    </fmt:message>
</fmt:bundle>
<hr>

使用prefix属性指定前缀
<br>
<fmt:bundle basename="resources.I18nResource" prefix="i18n.">
    <fmt:message key="message">
        <fmt:param value="${15}" />
        <fmt:param value="${388}" />
    </fmt:message>
</fmt:bundle>

在浏览器地址栏中输入如下的URL:

http://localhost:8080/demo/chapter9/bundle.jsp

浏览器显示的结果如图9.22所示。

22

图9.22 使用<fmt:bundle>标签创建ResourceBundle对象实例