<fmt:bundle> Etiqueta

JSP 标准标签库Biblioteca de etiquetas estándar de JSP (JSTL)

La etiqueta <fmt:bundle> hace que el paquete de recursos especificado esté disponible para las etiquetas <fmt:message> que aparecen dentro de la etiqueta <fmt:bundle>. Esto le ahorra muchos pasos al especificar el paquete de recursos para cada etiqueta <fmt:message>.

Por ejemplo, los siguientes dos bloques <fmt:bundle> producirán la misma salida:

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

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

Sintaxis

<fmt:bundle baseName="<string>" prefix="<string>"/>

Atributos

La etiqueta <fmt:bundle> tiene los siguientes atributos:

Atributo Descripción Requerido Valor predeterminado
basename Especifica el nombre base del paquete de recursos que se cargará. Sí Ninguno
prefix Especifica el prefijo para el atributo key de la etiqueta <fmt:message>. no Ninguno


Ejemplo de programa

Un paquete de recursos contiene objetos específicos de una región. Un paquete de recursos contiene pares clave-valor. Cuando su programa necesita recursos específicos de una región, puede compartir todos los pares clave-valor para todas las locales, pero también puede especificar valores traducidos para una locale. El paquete de recursos ayuda a proporcionar contenido específico para una locale.

Un archivo de paquete de recursos de Java contiene una serie de pares clave-valor. El método que nos interesa implica crear clases de Java compiladas que hereden de la clase java.util.ListResourceBundle. Debe compilar estas clases y colocarlas en el CLASSPATH de su aplicación web.

Definamos un paquete de recursos predeterminado:

package com.ejemplo;

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"},
  };
}

Compile el archivo anterior como Example.class y colóquelo en un lugar donde el CLASSPATH de la aplicación web pueda encontrarlo. Ahora puede usar JSTL para mostrar estos tres números, de la siguiente manera:

<%@ 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.ejemplo.Example" prefix="count.">
   <fmt:message key="one"/><br/>
   <fmt:message key="two"/><br/>
   <fmt:message key="three"/><br/>
</fmt:bundle>

</body>
</html>

El resultado de la ejecución es el siguiente:

One 
Two 
Three

Cámbielo a la versión sin el atributo prefix:

<%@ 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.ejemplo.Example">
   <fmt:message key="count.one"/><br/>
   <fmt:message key="count.two"/><br/>
   <fmt:message key="count.three"/><br/>
</fmt:bundle>

</body>
</html>

El resultado de la ejecución es el siguiente:

One 
Two 
Three

Puede consultar<fmt:setLocale>y<fmt:setBundle>para obtener más información.


JSP 标准标签库Biblioteca de etiquetas estándar de JSP (JSTL)

Otras extensiones