JSP jstl-core-<fmt:bundle> 标记

  • 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>
    
  • 属性

    属性 描述 必需 默认值
    basename 指定要加载的资源包的基本名称。 没有
    prefix 要在子标签中的每个键名前面附加的前缀 没有
  • 示例

    资源束包含特定于语言环境的对象。资源束包含键/值对。当您的程序需要特定于语言环境的资源时,您可以保留所有语言环境所共有的所有键,但是可以转换特定于语言环境的值。资源束有助于向语言环境提供特定的内容。Java资源包文件包含一系列键到字符串的映射。我们关注的方法涉及创建扩展了java.util.ListResourceBundle类的已编译Java 类。您必须编译这些类文件,并使它们可用于Web应用程序的类路径。让我们定义一个默认资源束,如下所示:
    
    package com.jc2182;
    
    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>标记以了解完整的概念。