Thymeleaf java模板引擎正在改变一些特殊字符

时间:2018-01-17 15:13:13

标签: java thymeleaf template-engine

final Context ctx = new Context();
context.setVariable("data", data);
templateEngine.process(template, context).trim();

这是进口商品:

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

模板变量指向" content_completed"。此content_completed是项目类路径中存在的html文件。

此html文件的内容:

<html xmlns:th="http://www.thymeleaf.org" th:inline="text" th:remove="tag">
[[${data.fileName}]][[${T(abc.composer.NoteData).COMPLETED_NO_ERRORS}]]
</html>

其中NoteData是一个java类

如果 data.fileName 类似&#34; sample&amp; .text&#34;,那么Thymeleaf模板引擎正在将其更改为&#34; sample&amp; amp; .text&#34 ;

关于如何避免这种情况的任何想法?

2 个答案:

答案 0 :(得分:1)

自己解决了。这是解决方案:

<html xmlns:th="http://www.thymeleaf.org" th:inline="text" th:remove="tag">
<th:block th:utext="${data.fileName}"/>[[${T(abc.composer.NoteData).COMPLETED_NO_ERRORS}]]
</html>

答案 1 :(得分:0)

Thymeleaf正在转义文件名,以便浏览器不会将&解释为特殊的HTML字符(它用于HTML实体)。

所以,我认为,答案是它正在做正确的事情。当您在浏览器中查看HTML输出时,它将按照您的预期进行渲染。