在 Java Spring Thymeleaf 中将变量呈现为 HTML
Posted
技术标签:
【中文标题】在 Java Spring Thymeleaf 中将变量呈现为 HTML【英文标题】:Render a variable as HTML in Java Spring Thymeleaf 【发布时间】:2020-10-30 08:49:40 【问题描述】:在我的 .java 文件中,我有
@RequestMapping(value = "/page1", method = RequestMethod.GET)
public String callback(@RequestParam(name = "token") String token, Model model)
//do something with token
//result variable is either
//"<p style=\"color:red;font-size:20px\"><strong>fail</strong></p>"
//or
//"<p style=\"color:green;font-size:20px\"><strong>pass</strong></p>"
model.addAttribute("result", result);
return "page1";
在我的 page1.html 文件中:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8" />
<title>Page1</title>
</head>
<body>
<p th:text="'here is the result: ' + $result"></p>
</body>
</html>
现在,我的 page1 显示:
here is the result: <p style="color:green;font-size:20px"><strong>pass</strong></p>
是否可以将我的结果变量呈现为 html,以便我的 page1 显示一个大的绿色通道?除了 th:text + $var 还有其他格式选项吗?我使用的是 spring boot 和 thymeleaf。我试图不为此使用 javascript。
类似 this 的东西,但用于 java
【问题讨论】:
【参考方案1】:这是控制器级别的表示和语义的不良混合,以及 HTML 级别的内容和样式的不良混合。相反,请为 result
使用布尔属性并使用 th:if
或类似属性来切换模板中的 HTML 内容,并避免使用内联样式以支持 class="success"
之类的内容。
【讨论】:
【参考方案2】:使用这个:
th:utext="'here is the result: ' + $result"
【讨论】:
以上是关于在 Java Spring Thymeleaf 中将变量呈现为 HTML的主要内容,如果未能解决你的问题,请参考以下文章
Spring Boot + Thymeleaf 错误 java.lang.ClassNotFoundException: org.thymeleaf.dom.Attribute
Thymeleaf (Java Spring):无法让 mvc.uri 工作