如何将 Thymeleaf 对象从基本页面传递到 ajax 生成页面?

Posted

技术标签:

【中文标题】如何将 Thymeleaf 对象从基本页面传递到 ajax 生成页面?【英文标题】:How to pass Thymeleaf object from base page to ajax generated page? 【发布时间】:2018-02-15 22:19:55 【问题描述】:

我有一个包含子步骤的注册流程,并且我为这些子步骤提供了单独的 html 页面,以便于管理。现在我有一个“基本页面”,它是容器。下面的 div 是我加载子页面的地方。

<div id="substeps" th:object="$stepFourForm">
</div>

我使用 ajax 加载子步骤

$('#substeps').html(data);

加载的子步骤页面如何检索基本页面上的stepFourForm对象?

【问题讨论】:

【参考方案1】:

您应该在加载子步骤页面之前删除div 内容。你可以使用百里香片段来做到这一点。

$.ajax(
    type: "GET",
    url: "/example-url",
    success: function (data) 
        $('#substeps').html('');
        $('#substeps').html(data);

    
);

控制器代码:

@RequestMapping("/example-url")
public ModelAndView example() 

    ModelAndView view = new ModelAndView("substep1  :: content");
    return view;

示例片段 html 名称 substep1

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
      xmlns:dt="http://www.thymeleaf.org/dandelion/datatables">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
</head>
<body>

<div th:fragment="content">
    --some content
</div>

</body>
</html>

【讨论】:

以上是关于如何将 Thymeleaf 对象从基本页面传递到 ajax 生成页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Thymeleaf 和 HTML 将数据显示到两列?

spring thymeleaf - 从 html 表中删除对象并将 id 传递给控制器

Thymeleaf 形式 - 如何将模型属性的值从一个控制器方法传递到另一个控制器方法

登录成功后向片段或页面传递数据

Thymeleaf - 如何将对象(带有子对象)从表单发送回控制器

在 Thymeleaf 中,如何根据当前模型对象为 HTML 选择器选择 th:selected 值?