从 Thymeleaf 调用并加载 Spring MVC 控制器请求方法

Posted

技术标签:

【中文标题】从 Thymeleaf 调用并加载 Spring MVC 控制器请求方法【英文标题】:Invoke and load Spring MVC controller request method from Thymeleaf 【发布时间】:2018-02-04 10:37:08 【问题描述】:

我正在使用 Spring Boot 1.5.4 (Spring MVC) 和 Thymeleaf 3.0.6 (Layout Dialect 2.2.2)

假设我使用一个输出 html A 的 Thymeleaf 模板(模板 A)从 Spring MVC 控制器方法渲染模型。

是否可以从模板 A 中调用/调用另一个 Spring MVC 控制器方法(然后将使用不同的 thymeleaf 模板渲染模型)输出 HTML B,并将渲染结果加载到 HTML A 中?

类似于 struts2 动作标签对 executeResult=true 参数所做的事情。 https://www.tutorialspoint.com/struts_2/struts_action_tag.htm

我研究了 thymeleaf 的包含和替换,但它们似乎只适用于加载 html 片段而不是整个 Spring MVC 请求

【问题讨论】:

【参考方案1】:

您可以尝试向 Spring MVC 控制器方法发出 AJAX 请求,该方法将返回模板 B。

然后,一旦获得响应,您就可以将响应设置为 DOM 中现有的 html 元素,例如:

$.get("your_end_point", function(data, status)  
 document.getElementById("your_template_B_Container_DIV_ID").appendChild(data);
);

这只是一个猜测,还请记住,如果您使用bodyhead...标签。例如,您可以尝试仅使用 div 标记制作的模板,并查看是否可以渲染它。

【讨论】:

谢谢,但我希望在 thymeleaaf 级别的服务器上完成这一切。我知道我可以用 ajax 编写我的 html,正在研究在服务器上编写完整的 html。

以上是关于从 Thymeleaf 调用并加载 Spring MVC 控制器请求方法的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Spring Boot thymeleaf 加载图像

Thymeleaf 内联 javascript spring bean 使用文本模板模式检查 null

Spring Boot 无法从用户文件夹加载 css

使用 thymeleaf、spring boot 的动态下拉菜单

使用 Spring Boot 和 Thymeleaf 加载静态资源

Thymeleaf - 如何交互和重新加载 Javascript?