<fmt:bundle> Etiqueta
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.
Otras extensiones