properties

Mattepuffo's logo
Internazionalizzazione con Java Server Faces

Internazionalizzazione con Java Server Faces

In questi giorni mi sto dando allo studio delle Java Server Faces (JSF) e mi sono subito imbattuto in un problema: l'internazionalizzazione.

Volendo evitare modalità "classiche" tipo cookie o salvare i testi direttamente dentro un classe, possiamo procedere in questo modo.

Nel mio package ho creato un sotto package con dentro i file di properties: com.mf.language.

I file di properties devono avere questa nomenclatura: nome_lingua.properties, tranne quello di default.

Io ne ho due:

  • messages.properties (italiano)
  • messages_en.properties (inglese)

I file di properties lavorano con il concetto di chiave:valore:

ciao=CIAO!

Poi dovete scrivere l'equivalente per la altre lingue nei file appositi.

A questo punto creiamo, se non esiste già, il file di configurazione faces-config.xml dentro a WEB-INF, con questo dentro:

<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
              xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
    <application>
        <locale-config>
            <default-locale>it</default-locale>
            <supported-locale>en</supported-locale>
        </locale-config>
        <resource-bundle>
            <base-name>com_mf.language.messages</base-name>
            <var>msg</var>
        </resource-bundle>
    </application>
</faces-config>

In pratica gli diciamo dove sono i file delle lingue, e ne impostiamo una di default.

Mattepuffo's logo
Leggere e scrivere file di properties in Java

Leggere e scrivere file di properties in Java

Lo scenario è questo: vogliamo impostare i parametri di connessione al db non nel codice direttamente, ma usando un file memorizzato nella home dell'utente.

All'inizio pensavo di usare XML, ma poi mi hanno consigliato un file di properties.

Questo fila ha una struttura molto semplice di tipo chiave=valore.

Ecco il mio esempio:

#Thu Mar 31 13:17:09 CEST 2011
user=myuser
password=mypass
host=myhost
database=mydb

Prima di tutto create un file; per l'esempio mettetelo nella home directory e chiamatelo config.properties