0

0

Thymeleaf教程:通过点击按钮将表格行数据传递到新页面

花韻仙語

花韻仙語

发布时间:2025-08-25 17:24:19

|

593人浏览过

|

来源于php中文网

原创

Thymeleaf教程:通过点击按钮将表格行数据传递到新页面

本教程详细介绍了如何利用Thymeleaf的标准URL语法,在HTML表格中通过点击“申请”按钮,将当前行特定数据(如课程编号)作为URL参数,安全有效地传递到目标页面。文章提供了具体的代码示例,帮助开发者实现从列表页到详情页或操作页的数据传递,确保用户体验流畅且数据准确。

在web应用开发中,尤其是在展示数据列表的场景下,一个常见的需求是当用户点击表格中的某个操作按钮时,需要将该行对应的特定数据传递到另一个页面进行进一步处理(例如,查看详情、编辑或申请)。本文将以一个课程列表为例,详细讲解如何使用thymeleaf模板引擎实现这一功能,确保数据在页面跳转时能够准确无误地传递。

1. 问题背景

假设我们有一个展示课程信息的HTML表格,每一行代表一门课程,并且每行末尾都有一个“Apply”(申请)按钮。当用户点击某行课程的“Apply”按钮时,我们希望将该课程的唯一标识(例如classNo)传递到applycourse.html页面,以便在该页面加载对应课程的申请表单。

原始的course.html中,“Apply”按钮的代码可能如下所示,它只是一个静态链接,无法传递当前行的数据:

Status Course Code Course No Course Name Course Date (Time) Apply
Apply

2. 解决方案:利用Thymeleaf标准URL语法传递参数

Thymeleaf提供了一套强大的标准URL语法(Standard URL Syntax),允许开发者在URL中方便地嵌入变量。通过th:href属性和@{...}语法,我们可以将动态数据作为查询参数附加到URL上。

核心思想:标签的th:href属性中,使用@{/path/to/page(paramName=${variable})}的格式来构造URL。其中:

  • /path/to/page是目标页面的URL路径。
  • paramName是您希望在目标页面接收的参数名称。
  • ${variable}是当前Thymeleaf上下文中可用的变量,它将作为paramName的值。

修改后的course.html代码示例:

为了将当前行的classNo传递到individualapplication页面,我们需要修改“Apply”按钮的标签如下:

Status Course Code Course No Course Name Course Date (Time) Apply
Apply

生成的URL示例:

当Thymeleaf处理上述代码时,对于每一行数据,它会根据class.classNo的实际值生成一个动态的URL。例如,如果某行的class.classNo值为500,那么生成的链接将是:

倍塔塞司
倍塔塞司

AI职业规划、AI职业测评、定制测评、AI工具等多样化职业类AI服务。

下载
Apply

当用户点击此链接时,classNo=500这个查询参数就会被发送到目标页面。

3. 目标页面数据接收

在目标页面(例如applycourse.html对应的后端控制器)中,您可以通过标准的Web请求参数获取方法来接收这些数据。对于Spring MVC应用,这通常意味着在控制器方法中使用@RequestParam注解来绑定URL中的参数。

Spring MVC控制器示例:

@Controller
@RequestMapping("/CourseRegistration-NotesForOnlineApplication/individual")
public class IndividualApplicationController {

    @GetMapping("/individualapplication")
    public String showApplicationForm(@RequestParam("classNo") String classNo, Model model) {
        // 根据接收到的classNo查询对应的课程详情
        // Course course = courseService.findByClassNo(classNo);
        // model.addAttribute("course", course);
        model.addAttribute("receivedClassNo", classNo); // 将参数添加到模型中,以便在applycourse.html中使用
        return "applycourse"; // 返回applycourse.html模板
    }
}

在applycourse.html中,您就可以通过${receivedClassNo}来访问传递过来的课程编号了。

4. 注意事项

  • 数据安全性与隐私: 尽管URL参数方便,但不应传递敏感或大量数据。对于敏感信息,考虑使用POST请求或将会话(Session)存储作为替代方案。URL参数是可见的,可能会被书签收藏或记录在浏览器历史中。
  • 多参数传递: 如果需要传递多个参数,只需在th:href的@{...}中用逗号分隔。例如:
    Link
  • URL编码: Thymeleaf会自动处理URL参数的编码,无需手动进行特殊字符的处理,这大大简化了开发。
  • 路径上下文: @{...}语法支持多种URL类型,包括相对路径、绝对路径和上下文相对路径。在本例中,../表示相对路径,根据当前页面的URL来计算。

5. 总结

通过灵活运用Thymeleaf的标准URL语法,我们可以轻松实现从表格行到目标页面的数据传递。这种方法不仅代码简洁、易于维护,而且能够有效地提升用户体验,确保Web应用的交互性和数据准确性。理解并掌握th:href和@{...}的用法是Thymeleaf开发中的一项基本且重要的技能。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

116

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

46

2026.01.26

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

316

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

752

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

95

2025.08.19

class在c语言中的意思
class在c语言中的意思

在C语言中,"class" 是一个关键字,用于定义一个类。想了解更多class的相关内容,可以阅读本专题下面的文章。

469

2024.01.03

python中class的含义
python中class的含义

本专题整合了python中class的相关内容,阅读专题下面的文章了解更多详细内容。

17

2025.12.06

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
如何进行WebSocket调试
如何进行WebSocket调试

共1课时 | 0.1万人学习

TypeScript全面解读课程
TypeScript全面解读课程

共26课时 | 5.1万人学习

前端工程化(ES6模块化和webpack打包)
前端工程化(ES6模块化和webpack打包)

共24课时 | 5.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号