JSTL - Tag <fmt: bundle> central

o <fmt:bundle> tag tornará o pacote especificado disponível para todos <fmt:message> marcas que ocorrem entre o bounding <fmt:bundle> e </fmt:bundle>Tag. Com isso, você não precisa especificar o pacote de recursos para cada um de seus<fmt:message> Tag.

Por exemplo, os dois blocos <fmt: bundle> a seguir produzirão a mesma saída -

<fmt:bundle basename = "com.tutorialspoint.Example">
   <fmt:message key = "count.one"/>
</fmt:bundle>

<fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
   <fmt:message key = "title"/>
</fmt:bundle>

Atributo

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

Atributo Descrição Requeridos Padrão
nome de base Especifica o nome base do pacote de recursos que deve ser carregado. sim Nenhum
Prefixo Valor a preceder a cada nome de chave nas subtags <fmt: message> Não Nenhum

Exemplo

Os pacotes de recursos contêm objetos específicos do local. Pacotes de recursos contêmkey/valuepares. 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 os valores específicos para a localidade. Pacotes de recursos ajudam a fornecer conteúdo específico para local.

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 compilar a classe acima Example.classe disponibilize-o 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:bundle Tag</title>
   </head>

   <body>
      <fmt:bundle basename = "com.tutorialspoint.Example" prefix = "count.">
         <fmt:message key = "one"/><br/>
         <fmt:message key = "two"/><br/>
         <fmt:message key = "three"/><br/>
      </fmt:bundle>
   </body>
</html>

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

One 
Two 
Three

Experimente o exemplo acima sem prefixo 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:bundle 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>
   </body>
</html>

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

One 
Two 
Three

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