2017-05-18 96 views
0

我有一個基本的SpringBoot應用程序。使用Spring初始化程序,嵌入式Tomcat,Thymeleaf模板引擎和包作爲可執行JAR文件。百里香/春天。從ModelMap獲取屬性密鑰

protected static final String ERROR_MESSAGE_KEY = "errorMessageKey"; 

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

模板:

signup.form.error.email.already.exists=Email (already taken) 
在我的控制器

在我的屬性文件

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

但是,這是我所看到的在礦井模板代替電子郵件的(已經拍攝)

??errorMessageKey_en_US?? 

回答

0

嘗試使用

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

當你的代碼是:

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

春不從message.properties文件解析的消息:你乾脆把模型中的字符串"signup.form.error.email.already.exists" ...

備註表達式#{errorMessageKey}正在返回包含指定消息的源文件的名稱。

0

將屬性放到模型不是如何解決Thymeleaf中的屬性。請參閱docs,他們在那裏解釋如何正確執行。

0

這是因爲Thymeleaf試圖獲取本地消息。並且默認情況下它正在嘗試en_US。

你可以看一下這個answer