java - 使用 Java 在 Thymeleaf 中避免特殊字符转义
问题描述
我正在尝试使用 Thymlead 作为我拥有的一些文本模板的模板引擎。
我的模板看起来像这样
free text
[[${myVar}]]
more text
我的 Java 代码是
ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();
templateResolver.setCharacterEncoding("UTF-8");
templateResolver.setTemplateMode(TEXT);
TemplateEngine templateEngine = new TemplateEngine();
templateEngine.setTemplateResolver(templateResolver);
Context context = new Context(ENGLISH, null);
context.setVariable("myVar", "My text with special characters such as ' < > &");
System.out.println(templateEngine.process("templateFileName", ctx));
我期待上面的打印
free text
My text with special characters such as ' < > &
more text
但它会打印
free text
My text with special characters such as ' < > &
more text
由于我正在处理纯文本而不是 HTML 或 XML,它不应该打印未转义的特殊字符吗?
我已将模式设置为 TEXT 并将编码设置为 UTF-8。
请赐教。
谢谢
缺口
解决方案
您应该使用[(${myVar})]
来打印未转义的文本。
(我同意[[${...}]]
表达式在 TEXT 模板模式下转义 HTML 特殊字符很奇怪。)
推荐阅读
- javascript - 没有调用 Office-fabric-react 文本字段的 onChange
- python - 字符串在添加到元组时拆分为字符
- javascript - 使用后从 url 中删除附加的锚点/#link
- javascript - 通过调用python脚本为Javascript函数调用添加延迟
- r - 将列表列表的维度组合成单独的向量
- java - 从mysql数据库的单列中检索有限的行
- python - 如何将Python包转换为exe?
- ruby-on-rails - 在注册或新会话后设计自定义重定向
- jquery - 语义 UI 嵌入:如何知道状态变化?
- selenium-webdriver - Selenium Webdriver 使用 java 自动显示浏览器