Balise <fmt:setLocale>
Bibliothèque de balises standard JSP
La balise <fmt:setLocale> est utilisée pour stocker la locale donnée dans la variable de configuration de locale.
Format de syntaxe
<fmt:setLocale value="<string>" variant="<string>" scope="<string>"/>
Attributes
La balise <fmt:setLocale> possède les attributs suivants :
| Attribut | Description | Requis | Valeur par défaut |
|---|---|---|---|
| value | Spécifie le code de langue ISO-639 et le code de pays ISO-3166 | Oui | en_US |
| variante | Variante spécifique au navigateur | non | Aucune |
| scope | Portée de la variable de configuration de la locale | non | Page |
Exemple de programme
Les bundles de ressources contiennent des objets spécifiques à la locale. Les bundles de ressources contiennent des paires clé-valeur. Lorsque votre programme a besoin de ressources spécifiques à une locale, vous pouvez partager toutes les paires clé-valeur entre toutes les locales, mais vous pouvez également spécifier des valeurs traduites pour une locale. Les bundles de ressources aident à fournir du contenu spécifique à la locale.
Un fichier de bundle de ressources Java contient une série de paires clé-valeur. La méthode qui nous intéresse consiste à créer des classes Java compilées qui héritent de la classe java.util.ListResourceBundle. Vous devez compiler ces classes et les placer dans le CLASSPATH de votre application Web.
Définissons un bundle de ressources par défaut :
package com.example;
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"},
};
}
Maintenant, définissez un autre bundle de ressources pour la locale espagnole :
package com.example;
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"},
};
}
Compilez les fichiers ci-dessus en Examble.class et Examble_es_ES.class, puis placez-les dans le CLASSPATH de l'application Web. Vous pouvez maintenant utiliser les balises JSTL pour afficher ces trois nombres, comme ceci :
<%@ 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.example.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.example.Example">
<fmt:message key="count.one"/><br/>
<fmt:message key="count.two"/><br/>
<fmt:message key="count.three"/><br/>
</fmt:bundle>
</body>
</html>
La sortie est la suivante :
One Two Three Uno Dos Tres
Voir<fmt:bundle>et<setBundle>pour plus d'informations.
Autres extensions