JSTL - Tag central <fmt: setLocale>

o <fmt:setLocale> tag é usada para armazenar a localidade fornecida na variável de configuração local.

Atributo

o <fmt:setLocale> tag tem os seguintes atributos -

Atributo Descrição Requeridos Padrão
Valor Especifica um código de duas partes que representa o código de idioma ISO-639 e um código de país ISO-3166. sim en_US
variante Variante específica do navegador Não Nenhum
escopo Escopo da variável de configuração local Não Página

Exemplo

Os pacotes de recursos contêm objetos específicos do local. Os pacotes de recursos contêm pares de chave / valor. Quando seu programa precisa de um recurso específico da localidade, você mantém todas as chaves comuns a todas as localidades, mas pode traduzir valores específicos para a localidade. Os pacotes de recursos ajudam a fornecer conteúdo específico para a localidade.

Um arquivo de pacote de recursos Java contém uma série de key-to-string mappings. O método em que nos concentramos envolve a criação de classes Java compiladas que estendem ojava.util.ListResourceBundleclasse. Você deve compilar esses arquivos de classe e torná-los disponíveis para o caminho de classe de seu aplicativo da Web.

Vamos definir um pacote de recursos padrão da seguinte maneira -

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"},
   };
}

Vamos agora definir mais um pacote de recursos que usaremos para o idioma espanhol -

package com.tutorialspoint;

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"},
   };
}

Vamos compilar as classes acima Example.class e Example_es_ES.classe disponibilizá-los no CLASSPATH de sua aplicação web. Agora você pode usar as seguintes tags JSTL para exibir os três números da seguinte forma -

<%@ 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 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>

      <!-- Change the Locale -->
      <fmt:setLocale value = "es_ES"/>
      <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>

O código acima irá gerar o seguinte resultado -

One 
Two 
Three
Uno
Dos
Tres

Verifique as tags <fmt: bundle> e <setBundle> para entender o conceito completo.