<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標籤以了解完整的概念。