2016-03-28 2 views
0

die application.properties senden istspringMVC + thymleaf Nachricht kann nicht Ausdrücke analysieren, wenn die Verwendung templateResolver E-Mail

spring.thymeleaf.prefix=classpath:/templates/ 
spring.thymeleaf.suffix=.html 
spring.thymeleaf.mode=HTML5 
spring.thymeleaf.encoding=UTF-8 
# set to false for hot refresh, should be set to true in deployment 
spring.thymeleaf.cache=false 

get Vorlageninhalt ist wie folgt:

@Autowired 
    private ITemplateResolver templateResolver; 

private String getMailContent(EmailDTO email, EmailType type) { 

    SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
    templateEngine.setTemplateResolver(templateResolver); 
    Context context = new Context(email.getLocale()); 
    context.setVariable("email", email.getAddress()); 
    return templateEngine.process("email/resetcontent", context); 

} 

die Vorlage:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"> 
<head> 
<title>SIM : Reset Password</title> 
<meta charset="utf-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
</head> 
<body> 
    <span th:text="#{reset.password.title}">Reset Password</span> 
    <span th:text="${email}"></span> 
</body> 
</html> 

th: text = "$ {email}" kann analysiert werden, aber der th: text = "# {reset.password.title}" ist ?? reset.password. title_de_US ??

Project Structure

wer kann mir sagen, warum? vielen Dank

+0

$ siehe {email} ist mit Bean-Objekt und # {} reset.password.title Bindung Eigenschaften variabel, so seine nicht Lösung gehen, die Sie variablen Eigenschaften erhalten müssen in Ihrem Controller –

+0

ja, es ist keine gute Lösung, ich benutze diese Methode vorübergehend, wenn Sie auf andere Weise denken, bitte erleuchten Sie mich – zengshufang

Antwort

0

Wenn Sie Spring Boot verwenden, wird der Standard Message Resolver versuchen, den Code "Reset" für eine "Passwort" -Bohne zu finden, die ein "Titel" -Feld haben.

Sie diesen Code verwenden sollte:

<span th:text="#{resetPasswordTitle}">Reset Password</span> 
+0

es ist wirklich Spring Boot. Ich habe versucht, aber immer noch nicht arbeiten – zengshufang

+0

haben sich aufgelöst, nur wegen autowired templateEngine, wenn das Programm starten – zengshufang

+0

gut zu wissen .. :) –