Etiqueta <fmt:setLocale>

JSP 标准标签库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.


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

Otras extensiones