JSTL - Tag principale <fmt: bundle>

Il <fmt:bundle> tag renderà disponibile a tutti il ​​bundle specificato <fmt:message> tag che si verificano tra il bounding <fmt:bundle> e </fmt:bundle>tag. Con questo, non è necessario specificare il bundle di risorse per ciascuno dei tuoi file<fmt:message> tag.

Ad esempio, i seguenti due blocchi <fmt: bundle> produrranno lo stesso output:

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

Attributo

Il <fmt:bundle> tag ha i seguenti attributi:

Attributo Descrizione necessario Predefinito
basename Specifica il nome di base del bundle di risorse che deve essere caricato. Nessuna
Prefisso Valore da anteporre a ciascun nome di chiave nei sottotag <fmt: message> No Nessuna

Esempio

I bundle di risorse contengono oggetti specifici della locale. I pacchetti di risorse contengonokey/valuecoppie. Quando il programma necessita di una risorsa specifica della locale, si mantengono tutte le chiavi comuni a tutte le impostazioni locali ma è possibile avere valori tradotti specifici per la locale. I pacchetti di risorse aiutano a fornire contenuti specifici alle impostazioni locali.

Un file bundle di risorse Java contiene una serie di file key-to-string mappings. Il metodo su cui ci concentriamo prevede la creazione di classi Java compilate che estendono l'estensionejava.util.ListResourceBundleclasse. È necessario compilare questi file di classe e renderli disponibili al percorso di classe dell'applicazione Web.

Definiamo un pacchetto di risorse predefinito come segue:

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

Compiliamo la classe sopra Example.classe renderlo disponibile nel CLASSPATH della tua applicazione Web. Ora puoi utilizzare i seguenti tag JSTL per visualizzare i tre numeri come segue:

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

Il codice sopra genererà il seguente risultato:

One 
Two 
Three

Prova l'esempio sopra senza prefisso come segue:

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

Il codice sopra genererà il seguente risultato:

One 
Two 
Three

Controlla i tag <fmt: setLocale> e <setBundle> per comprendere il concetto completo.