Spring Resource Bundle mit Beispiel ResourceBundleMessageSource

Spring Resource-Bundle mit ResourceBundleMessageSource-Beispiel

In Spring können SieResourceBundleMessageSource verwenden, um Textnachrichten aus der Eigenschaftendatei basierend auf den ausgewählten Gebietsschemas aufzulösen. Siehe folgendes Beispiel:

1. Verzeichnisaufbau

Überprüfen Sie die Verzeichnisstruktur dieses Beispiels.

directory structure of this example

2. Eigenschaftendatei

Erstellen Sie zwei Eigenschaftendateien, eine für englische Zeichen (messages_en_US.properties) und eine für chinesische Zeichen (messages_zh_CN.properties). Fügen Sie es in den Projektklassenpfad ein (siehe Abbildung oben).

Datei: messages_en_US.properties

customer.name=Yong Mook Kim, age : {0}, URL : {1}

Datei: messages_zh_CN.properties

customer.name=\ufeff\u6768\u6728\u91d1, age : {0}, URL : {1}

Das '杨木金' ist ein Unicode-Zeichen auf Chinesisch.

Note
Um die chinesischen Schriftzeichen korrekt anzuzeigen, müssen Sie „http://www.example.com/java/java-convert-chinese-character-to-unicode-with-native2ascii/“ verwenden. [native2ascii] ”, um die chinesischen Zeichen in Unicode-Zeichen umzuwandeln.

3. Bean Konfigurationsdatei

Fügen Sie die Eigenschaftendatei in die Bean-Konfigurationsdatei ein. Sowohl "messages_en_US.properties" als auch "messages_zh_CN.properties" werden in Spring als eine Datei betrachtet. Sie müssen den Dateinamen nur einmal einfügen, und Spring findet automatisch das richtige Gebietsschema.



    
        
            locale\customer\messages
        
    

P.S Assume both files are located at “resources\locale\customer\u201d folder.

4. Starte es

package com.example.common;

import java.util.Locale;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {

        ApplicationContext context
            = new ClassPathXmlApplicationContext("locale.xml");

        String name = context.getMessage("customer.name",
                new Object[] { 28,"http://www.example.com" }, Locale.US);

        System.out.println("Customer name (English) : " + name);

        String namechinese = context.getMessage("customer.name",
                new Object[] {28, "http://www.example.com" },
                                        Locale.SIMPLIFIED_CHINESE);

        System.out.println("Customer name (Chinese) : " + namechinese);

    }
}

Ausgabe

output

Note
Stellen Sie sicher, dass IhreEclipse is able to display Chinese output.

Erläuterung

1. Incontext.getMessage() ist das zweite Argument Nachrichtenparameter. Sie müssen es als Objektarray übergeben. Sie können einfach eine Null übergeben, wenn keine Parameterwerte verfügbar sind.

    context.getMessage("customer.name",null, Locale.US);

2. Locale.US ruft die Nachrichten von 'messages_en_US.properties' ab, während Locale.SIMPLIFIED_CHINESE die Nachrichten von 'messages_zh_CN.properties' abruft.

More …
Lesen Sie diesen Artikel, um zu erfahren, wie Sie aufMessageSource inside a bean zugreifen können.

Quellcode herunterladen

Laden Sie es herunter -Spring-MessageSource-Example.zip