我有一个控制器,可以创建模型属性并传递给视图“partial.html”以生成输出
partial.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Home page</title>
<meta charset="UTF-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
<p>
<span th:text="'Today is: ' + ${message}"></span>
</p>
</body>
</html>
并在控制器方法中
model.addAttribute("message", search);
如何将Htlm输出转换为控制器方法中的字符串? 像这样
String htmlOutput="from partial.html";
答案 0 :(得分:3)
如果你正在使用通常的Spring MVC方法,正如乔安娜所说,你正在以错误的顺序做事。 Controller创建模型并指定视图,然后视图由使用模型的Thymeleaf模板呈现。
另一方面,如果您尝试自己呈现Thymeleaf模板(而不是直接将其发送到用户的浏览器,可能用于HTML电子邮件或将预呈现的页面存储在数据库中)或某事),那么您需要创建自己的Thymeleaf模板引擎才能使用。请参阅&#34; Creating and configuring the Template Engine&#34;文档的一部分以获取详细信息。您可以创建自己的引擎,然后使用其process方法将模板的结果放入变量中以供进一步使用。
答案 1 :(得分:1)
假设您有一个HTML文件,带有两个变量名,todayDate,并且想要对其进行处理并将其存储在字符串,数据库或AWS s3中。
>> import cv2
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import cv2
ImportError: DLL load failed: %1 is not a valid Win32 application.
答案 2 :(得分:0)
一旦控件出来查看处理器(JSP / Thymeleaf等),它就不会回到控制器。您将能够在customFilter中获取原始html响应,但不能在Controller中获取。
答案 3 :(得分:0)
您可能会寻找this,直接获取结果HTML,而忽略帖子的电子邮件部分。
然后,您可以创建一个:
final Context ctx = new Context(locale);
ctx.setVariable("name", recipientName);
ctx.setVariable("subscriptionDate", new Date());
ctx.setVariable("hobbies", Arrays.asList("Cinema", "Sports", "Music"));
ctx.setVariable("imageResourceName", imageResourceName);
// so that we can reference it from HTML
final String htmlContent = this.templateEngine.process("html/email-inlineimage.html", ctx);
因此,您具有呈现的百里香模板的htmlContext(带有vars)