2017-05-18 50 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