2017-05-18 2 views
0

Ich habe eine grundlegende SpringBoot App. Verwenden von Spring Initializer, eingebetteter Tomcat-, Thymeleaf-Vorlagen-Engine und Paket als ausführbare JAR-Datei.Thymoleaf/Frühling. Get Property Key von ModelMap

in meiner Eigenschaft Datei:

signup.form.error.email.already.exists=Email (already taken) 

in meinem Controller:

protected static final String ERROR_MESSAGE_KEY = "errorMessageKey"; 

model.addAttribute(ERROR_MESSAGE_KEY, "signup.form.error.email.already.exists"); 

in der Vorlage:

<div th:if="${errorMessageKey != null}" class="alert alert-danger alert-dismissible" role="alert"> 
        <button type="button" class="close" data-dismiss="alert" aria-label="Close"> 
         <span aria-hidden="true">x</span> 
        </button> 
        <p th:text="#{errorMessageKey}" />      
       </div> 

Aber das ist, was ich inder Vorlage sehen statt Email (bereits vergeben)

??errorMessageKey_en_US?? 

Antwort

0

Versuchen

<p th:text="#{signup.form.error.email.already.exists}" /> 

Verwendung Wenn Sie diesen Code:

model.addAttribute(ERROR_MESSAGE_KEY, "signup.form.error.email.already.exists"); 

Der Frühling ist nicht die Lösung der Nachricht von der message.properties-Datei: Sie einfach setzen die Zeichenkette "signup.form.error.email.already.exists" im Modell ...

HINWEIS Der Ausdruck #{errorMessageKey} gibt den Namen der Quelldatei zurück, die die angegebene Nachricht enthält.

0

Das Angeben von Eigenschaften zu Model ist nicht, wie Sie die Eigenschaften in Thymeleaf auflösen. Sehen Sie die docs, wo sie erklären, wie man es richtig macht.

0

Es ist wegen Thymeleaf versucht, Locale-Nachricht abzurufen. Und standardmäßig versucht es en_US.

Sie können answer an dieser aussehen