Etiqueta <fmt:setLocale>
Biblioteca de etiquetas estándar de JSP (JSTL)
La etiqueta <fmt:setLocale> se usa para almacenar la configuración regional dada en la variable de configuración locale.
Formato de sintaxis
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
Atributos
La etiqueta <fmt:setLocale> tiene los siguientes atributos:
| Atributo | Descripción | ¿Es necesario? | Valor predeterminado |
|---|---|---|---|
| value | Especifica el código de idioma ISO-639 y el código de país ISO-3166 | Sí | en_US |
| variant | Variante específica del navegador | no | Ninguno |
| scope | Ámbito de la variable de configuración locale | no | Page |
Ejemplo de programa
Un resource bundle contiene objetos específicos de un locale. Un resource bundle contiene pares clave-valor. Cuando su programa necesita recursos específicos de un locale, puede compartir todas las claves para todos los locales, pero también puede especificar valores traducidos para cada locale. Los resource bundles ayudan a proporcionar contenido específico para un locale.
Un archivo de resource bundle de Java contiene una serie de pares clave-valor. El método que nos interesa implica la creación de clases Java compiladas que heredan de la clase java.util.ListResourceBundle. Debe compilar estas clases y luego colocarlas en el CLASSPATH de su aplicación web.
Definamos un resource bundle 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"},
};
}
Ahora, definamos otro resource bundle para el locale Spanish (español):
package com.ejemplo;
import java.util.ListResourceBundle;
public class Example_es_ES extends ListResourceBundle {
public Object[][] getContents() {
return contents;
}
static final Object[][] contents = {
{"count.one", "Uno"},
{"count.two", "Dos"},
{"count.three", "Tres"},
};
}
Compile los archivos anteriores en Examble.class y Examble_es_ES.class, y luego colóquelos en el CLASSPATH de la aplicación web. Ahora puede usar las etiquetas JSTL para mostrar estos tres números, así:
<%@ 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:setLocale 标签</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>
<!-- 修改地区-->
<fmt:setLocale value="es_ES"/>
<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 Uno Dos Tres
Consulte<fmt:bundle>y<setBundle>para obtener más información.
Otras extensiones