JSTL - Etiqueta de núcleo <fmt: bundle>
los <fmt:bundle> hará que el paquete especificado esté disponible para todos <fmt:message> etiquetas que ocurren entre el bounding <fmt:bundle> y </fmt:bundle>etiquetas. Con esto, no necesita especificar el paquete de recursos para cada uno de sus<fmt:message> etiquetas.
Por ejemplo, los siguientes dos bloques <fmt: bundle> producirán la misma salida:
<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>
Atributo
los <fmt:bundle> La etiqueta tiene los siguientes atributos:
Atributo | Descripción | Necesario | Defecto |
---|---|---|---|
nombre de base | Especifica el nombre base del paquete de recursos que se va a cargar. | si | Ninguna |
Prefijo | Valor para anteponer a cada nombre de clave en las subetiquetas <fmt: message> | No | Ninguna |
Ejemplo
Los paquetes de recursos contienen objetos específicos de la configuración regional. Los paquetes de recursos contienenkey/valuepares. Cuando su programa necesita un recurso específico de la configuración regional, usted mantiene todas las claves comunes a todas las configuraciones regionales, pero puede tener valores traducidos específicos para la configuración regional. Los paquetes de recursos ayudan a proporcionar contenido específico a la configuración regional.
Un archivo de paquete de recursos de Java contiene una serie de key-to-string mappings. El método en el que nos enfocamos implica la creación de clases Java compiladas que extienden eljava.util.ListResourceBundleclase. Debe compilar estos archivos de clase y ponerlos a disposición de la ruta de clase de su aplicación web.
Definamos un paquete de recursos predeterminado de la siguiente manera:
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"},
};
}
Compilemos la clase anterior Example.classy ponerlo a disposición en CLASSPATH de su aplicación web. Ahora puede usar las siguientes etiquetas JSTL para mostrar los tres números de la siguiente manera:
<%@ 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>
El código anterior generará el siguiente resultado:
One
Two
Three
Pruebe el ejemplo anterior sin prefijo de la siguiente manera:
<%@ 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>
El código anterior generará el siguiente resultado:
One
Two
Three
Compruebe las etiquetas <fmt: setLocale> y <setBundle> para comprender el concepto completo.