You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Thymeleaf实现点击申请按钮时传递表格行数据至目标页面

解决方案

下面提供三种可行的实现方式,根据你的数据复杂度和需求选择:

方式一:URL参数传递(适合少量关键数据)

直接在跳转URL中拼接课程的关键参数,目标页面通过Thymeleaf接收这些参数。

修改course.html中的Apply按钮链接:

<td>
    <a th:href="@{/CourseRegistration-NotesForOnlineApplication/individual/individualapplication(
        classStatus=${class.classStatus},
        courseCode=${class.courseId.courseCode},
        classNo=${class.classNo},
        courseTitle=${class.courseId.courseTitleEng},
        classDate=${class.classDate}
    )}" class="spinner-trigger-button">Apply</a>
</td>

在applycourse.html中接收参数:

<!-- 示例:显示接收的课程数据 -->
<div>
    <p>课程状态:<span th:text="${param.classStatus}"></span></p>
    <p>课程代码:<span th:text="${param.courseCode}"></span></p>
    <p>班级编号:<span th:text="${param.classNo}"></span></p>
    <p>课程名称:<span th:text="${param.courseTitle}"></span></p>
    <p>课程日期:<span th:text="${param.classDate}"></span></p>
</div>

方式二:表单POST传递(适合多字段/复杂数据)

用表单包裹每行数据,点击Apply提交表单,将数据POST到目标页面。

修改course.html的表格行:

<tr th:each="class : ${inclass}">
    <td th:text="${class.classStatus}"></td>
    <td th:text="${class.courseId.courseCode}"></td>
    <td th:text="${class.classNo}"></td>
    <td th:text="${class.courseId.courseTitleEng}"></td>
    <td th:text="${class.classDate}"></td>
    <td>
        <form th:action="@{/CourseRegistration-NotesForOnlineApplication/individual/individualapplication}" method="post">
            <!-- 隐藏字段存储课程数据 -->
            <input type="hidden" th:value="${class.classStatus}" name="classStatus">
            <input type="hidden" th:value="${class.courseId.courseCode}" name="courseCode">
            <input type="hidden" th:value="${class.classNo}" name="classNo">
            <input type="hidden" th:value="${class.courseId.courseTitleEng}" name="courseTitle">
            <input type="hidden" th:value="${class.classDate}" name="classDate">
            <button type="submit" class="spinner-trigger-button">Apply</button>
        </form>
    </td>
</tr>

在applycourse.html中接收(需后端配合将请求参数放入Model):

<div>
    <p>课程状态:<span th:text="${classStatus}"></span></p>
    <p>课程代码:<span th:text="${courseCode}"></span></p>
    <!-- 其他字段同理 -->
</div>

方式三:SessionStorage存储(适合前端跳转传递复杂对象)

通过JavaScript将当前行的课程数据存入SessionStorage,跳转后在目标页面读取。

修改course.html的Apply按钮,添加点击事件:

<td>
    <a href="../CourseRegistration-NotesForOnlineApplication/individual/individualapplication" 
       class="spinner-trigger-button"
       th:onclick="saveCourseData([[${class}]])">Apply</a>
</td>

添加对应的JavaScript:

function saveCourseData(course) {
    // 将对象转为JSON字符串存入SessionStorage
    sessionStorage.setItem('selectedCourse', JSON.stringify(course));
}

在applycourse.html中读取数据:

<script>
window.onload = function() {
    const course = JSON.parse(sessionStorage.getItem('selectedCourse'));
    if(course) {
        // 将数据渲染到页面
        document.getElementById('classStatus').textContent = course.classStatus;
        document.getElementById('courseCode').textContent = course.courseId.courseCode;
        // 其他字段同理
        // 用完后可移除存储
        sessionStorage.removeItem('selectedCourse');
    }
}
</script>

<div>
    <p>课程状态:<span id="classStatus"></span></p>
    <p>课程代码:<span id="courseCode"></span></p>
    <!-- 其他字段 -->
</div>

内容的提问来源于stack exchange,提问作者ZZZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:23:13