<fmt:bundle>
标签将使指定的包可用于在<fmt:bundle>
和</fmt:bundle>
标签之间发生的所有<fmt:message>
标签。 因此,不需要为每个<fmt:message>
标签指定资源绑定。
例如,以下两个<fmt:bundle>
块将产生相同的输出 -
<fmt:bundle basename = "com.yiibai.example">
<fmt:message key = "count.one"/>
</fmt:bundle>
<fmt:bundle basename = "com.yiibai.example" prefix = "count.">
<fmt:message key = "title"/>
</fmt:bundle>
属性
<fmt:bundle>
标签具有以下属性 -
属性 | 描述 | 必需 | 默认 |
---|---|---|---|
basename |
指定要加载的资源绑定的基本名称。 | 是 | — |
prefix |
在<fmt:message> 子标签中为每个键名称添加的值 |
否 | — |
示例
资源绑定包含区域特定的对象。 资源绑定包含键/值对。 当程序需要特定于区域设置的资源时,可以将所有键保留在所有区域设置中,但可以使用指定区域设置的翻译值。 资源绑定有助于向区域设置提供特定的内容。
Java资源包文件包含一系列键到字符串的映射。 我们关注的方法调用涉及创建扩展java.util.ListResourceBundle
类的Java类。 必须编译这些类文件并使其可用于Web应用程序的类路径。
下面来看如何定义一个默认资源绑定如下 -
文件:Example_Cn.java -
package com.yiibai;
import java.util.ListResourceBundle;
public class Example_Cn extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = { { "count.one", "一个" }, { "count.two", "两个" }, { "count.three", "三个" }, };
}
编译上面的Example_Cn
类,并使其在Web应用程序的CLASSPATH
中可用。现在可以使用以下JSTL标签来显示三个数字,如下所示:
文件:fmt_bundle.jsp -
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
<head>
<title>JSTL fmt:bundle标签</title>
</head>
<body>
<fmt:bundle basename = "com.yiibai.Example_Cn" prefix = "count.">
<fmt:message key = "one"/><br/>
<fmt:message key = "two"/><br/>
<fmt:message key = "three"/><br/>
</fmt:bundle>
</body>
</html>
这将产生以下结果 -
一个
两个
三个
尝试上面不使用前缀的示例,如下 -
文件:fmt_bundle2.jsp -
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "http://java.sun.com/jsp/jstl/fmt" prefix = "fmt" %>
<html>
<head>
<title>JSTL fmt:bundle标签</title>
</head>
<body>
<fmt:bundle basename = "com.yiibai.Example_Cn" prefix = "count.">
<fmt:message key = "one"/><br/>
<fmt:message key = "two"/><br/>
<fmt:message key = "three"/><br/>
</fmt:bundle>
</body>
</html>
这将产生以下结果 -
一个
两个
三个
可通过查看<fmt:setLocale和<setBundle标签以了解完整的概念。