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所示。
图9.22 使用<fmt:bundle>标签创建ResourceBundle对象实例