Balise <fmt:setLocale>

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


JSP 标准标签库Bibliothèque de balises standard JSP

Autres extensions