Nachricht in Nachrichtenquelle nicht gefunden

8

Ich versuche eine einfache Spring-Anwendung zu starten, bekomme aber folgende Ausnahme:

  

javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Nein   Nachricht gefunden unter Code 'label.firstname' für das Gebietsschema 'en_US'.

Meine Datei contact.jsp:

%Vor%

Meine spring-servlet.xml-Datei

%Vor%

Ich treffe URL:

localhost: 8080 / MavenWeb-0.0.1 / index

und mein Server Stacktrace:

%Vor%

Schritte zum Lösen des Problems:

  1. Platzieren Sie messages_en.properties-Dateien nur im Ordner src / main / resource
  2. Stellen Sie sicher, dass der Name der Datei als messages_en.properties korrekt ist und nicht message_en.properties
  3. Wenn du maven build mit mvn clean install machst Die Datei messages_en.properties wird in angezeigt Ziel / Projektname / WEB-INF / Klassen / messages.properties
  4. Check-in spring-servlet.xml (Name kann variieren) und verwenden     Klassenpfad: Nachrichten als Basisname in messageSource

und es sollte funktionieren, da es mein Problem gelöst hat.

%Vor%     
Rachel 19.07.2011, 14:34
quelle

6 Antworten

11

Ihre MessageSource -Bohnendefinition ist ein wenig verwirrend. In der Regel ist der Basisname das Präfix des Dateinamens (minus .properties), den Sie für die Nachrichtenauflösung verwenden möchten. Die Spring- und die JDK ResourceBundle -Klasse werden die Sprache und / oder Länderabkürzung anhängen.

%Vor%

Wenn Sie beispielsweise Ressourcendateien wie messages.properties , messages_es.properties , messages_de.properties haben möchten, geben Sie einen Basisnamen von WEB-INF/messages an.

Wie lautet der tatsächliche Name Ihrer Nachrichtenpaketdatei (en)?

    
matt b 19.07.2011, 14:42
quelle
2

Ich hatte das gleiche Problem:

Lösung ist:

1-Legen Sie die Datei messages.properties in den Quellordner src / main / sources

2- die Bohnenfeder muss so sein:

%Vor%

Sie sehen, dass ich Eigenschaft denselben Namen der Datei messages.properties ohne .properties

einstelle

Das war das Problem ^^

    
Ahmed 27.06.2013 10:06
quelle
1

Sie müssen den Ordner "resources" zu "Web Deployment Assembly" hinzufügen. Danach ersetzen "Klassenpfad: Nachrichten" nur "Nachrichten". Die letzte Änderung, die Sie vornehmen müssen, ist das Säubern Ihrer Projekte.

Beispiel:

%Vor%

Das wird ausreichen. :)

    
Indrajit Das 10.05.2013 10:25
quelle
1

Eine wichtige Überlegung ist, dass sich die Eigenschaftendatei nicht im Klassenpfad befinden sollte, um automatisch neu geladen zu werden. Normalerweise werden die Eigenschaften von den Servern zwischengespeichert, wenn sie im Klassenordner liegen, ist das nicht wirklich effektiv. In Spring Docs, im Fall von classpath: messages, haben andere CachedSeconds als -1 keinen Effekt.

    
gmansoor 21.11.2013 18:59
quelle
0

Besser spät als nie. Ich hatte das gleiche Problem. Hier ist, wie ich es gelöst habe. Mein Dateiname war:

messages_ fr .properties

für Frankreich, weil es ein Französisch Spring Tutotrial ist. Aber ich wohne in Nederlands. Also habe ich versucht, es in

umzubenennen

messages_ nl .properties

und es funktioniert. Ich bin mir nicht sicher, ob dies eine langfristige Lösung ist, aber wir werden sehen.

    
georges van 24.10.2015 07:14
quelle
-4

Ich hatte das gleiche Problem, aber ich habe es einfach als messages_properties gelassen und es löste das Problem

    
user2333869 29.04.2013 22:15
quelle

Tags und Links