JSTL - Core <fmt:bundle> 標籤



<fmt:bundle>標籤將使指定的資源包可用於所有位於<fmt:bundle></fmt:bundle>標籤之間的<fmt:message>標籤。這樣,您無需為每個<fmt:message>標籤指定資源包。

例如,以下兩個<fmt:bundle>塊將產生相同的輸出:

<fmt:bundle basename = "com.tutorialspoint.Example">
   <fmt:message key = "count.one"/>
</fmt:bundle>

<fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
   <fmt:message key = "title"/>
</fmt:bundle>

屬性

<fmt:bundle>標籤具有以下屬性:

屬性 描述 必填 預設值
basename 指定要載入的資源包的基本名稱。
Prefix 附加到<fmt:message>子標籤中每個鍵名稱的值

示例

資源包包含特定於區域設定的物件。資源包包含鍵值對。當您的程式需要特定於區域設定的資源時,您可以保持所有區域設定通用的鍵,但您可以擁有特定於區域設定的翻譯值。資源包有助於為區域設定提供特定內容。

Java資源包檔案包含一系列鍵到字串的對映。我們關注的方法涉及建立擴充套件java.util.ListResourceBundle類的已編譯Java類。您必須編譯這些類檔案並使它們可用於Web應用程式的類路徑。

讓我們定義一個預設資源包,如下所示:

package com.tutorialspoint;

import java.util.ListResourceBundle;

public class Example_En extends ListResourceBundle {
   public Object[][] getContents() {
      return contents;
   }
   static final Object[][] contents = {
      {"count.one", "One"},
      {"count.two", "Two"},
      {"count.three", "Three"},
   };
}

讓我們編譯上面的類Example.class並使其可用於Web應用程式的CLASSPATH。現在您可以使用以下JSTL標籤來顯示這三個數字:

<%@ 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 Tag</title>
   </head>

   <body>
      <fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
         <fmt:message key = "one"/><br/>
         <fmt:message key = "two"/><br/>
         <fmt:message key = "three"/><br/>
      </fmt:bundle>
   </body>
</html>

以上程式碼將生成以下結果:

One 
Two 
Three

嘗試在沒有字首的情況下使用以上示例,如下所示:

<%@ 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 Tag</title>
   </head>

   <body>
      <fmt:bundle basename = "com.tutorialspoint.Example">
         <fmt:message key = "count.one"/><br/>
         <fmt:message key = "count.two"/><br/>
         <fmt:message key = "count.three"/><br/>
      </fmt:bundle>
   </body>
</html>

以上程式碼將生成以下結果:

One 
Two 
Three

檢視<fmt:setLocale><setBundle>標籤以瞭解完整的概念。

jsp_standard_tag_library.htm
廣告