如何将对象传递到 Thymeleaf 中的模式对话框?

2023-12-24

我有一个thymeleaf在表中显示数据库内容(人员)的页面。

<tr id="tableBody">
    <td th:text="${row.id}"/>
    <td th:text="${row.firstname}"/>
    <td th:text="${row.lastname}"/>
    <td>
        <button data-toggle="modal" data-target="#editModal" th:data-row="${row}">DEL</button>
    </td>
</tr>

最后一列应该是删除该行的按钮。但在此之前,显示一个模式对话框,其中包含被删除的数据。

问题:如何将整行人物对象传递给模式对话框?

我开始如下,但我错过了如何实际从单击的行传递 person 对象into模式对话框作为对象(以便我可以再次在模式对话框中显示人员字段)。

以下是一种伪代码:

<div class id="editModal" ...>
  <div class="modal-body">
    <div class="modal-body">
       You are about to delete: <div th:text="${row.firstname}"/> <div th:text="${row.lastname}"/>

       <form action="#" th:action="@{/delete/{id}" th:object="${row}" method="delete">
          <input type="text" hidden="true" th:field="${row.id}">
       </form>
    </div>

    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <button type="submit" class="btn btn-primary" th:href="@{/delete/{id}(id=${row.id})}" th:method="delete">Remove</button>
    </div>
  </div>
</div>

纯百里香叶

要在纯 thymeleaf 中执行此操作,您需要为表中的每一行创建一个具有唯一 id 的对话框,然后打开与要删除的行关联的对话框。

模态示例:

<div th:each="row : ${rows}" th:attr="id=${'editModal' + row.id}">
  <div class="modal-body">
    <div class="modal-body">
       You are about to delete: <div th:text="${row.firstname}"/> <div th:text="${row.lastname}"/>

       <form action="#" th:action="@{/delete/{id}" th:object="${row}" method="delete">
          <input type="text" hidden="true" th:field="${row.id}">
       </form>
    </div>

    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <button type="submit" class="btn btn-primary" th:href="@{/delete/{id}(id=${row.id})}" th:method="delete">Remove</button>
    </div>
  </div>
</div>

打开对话框的按钮变为:

<button data-toggle="modal" th:attr="data-target=${'#editModal'+row.id}" data-row="${row}">DEL</button>

使用 JavaScript

如果您可以使用 javascript,我建议仅使用 thymeleaf 创建模式对话框的模板,然后克隆它并动态填充它。

模态示例:

<div class id="editModalTemplate">
  <div class="modal-body">
    <div class="modal-body">
       You are about to delete: <div data-value="firstname"/> <div data-value="lastname"/>

       <form action="#" th:action="@{/delete/_id_}" method="delete">
          <input type="text" hidden="true" name="id">
       </form>
    </div>

    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Cancel</button>
        <button type="submit" class="btn btn-primary" th:href="@{/delete/{id}(id='_id_')}" th:method="delete">Remove</button>
    </div>
  </div>
</div>

删除按钮:

<button class="btn-delete" data-id=${row.id} data-firstname="${row.firstname}" data-lastname="${row.lastname}">DEL</button>

Javascript(以 jQuery 实现为例):

$('.btn-delete').click(function(){
    //clone dialog and remove ids to ensure uniqueness
    var $modal = $('#editModalTemplate').clone().removeAttr('id');

    //apply custom values where needed
    var $btn = $(this);
    var rowId = $btn.attr('data-id');
    var firstname = $btn.attr('data-firstname');
    var lastname = $btn.attr('data-lastname');

    $modal.find('[data-value="firstname"]').text(firstname );
    $modal.find('[data-value="lastname"]').text(lastname );
    $modal.find('[name="id"]').val($btn.attr('data-id'));
    $modal.find('form').attr('action').replace('_id_', rowId);     
    $modal.find('button[type="submit"]').attr('href', $modal.find('button[type="submit"]').attr('href').replace('_id_', rowId);

    //show dialog
    $modal.modal();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将对象传递到 Thymeleaf 中的模式对话框? 的相关文章

  • Java-线程与CPU的关系

    我对多线程还很陌生 我正在开发一个项目 尝试在我的 Java 程序中使用 4 个 CPU 我想做类似的事情 int numProcessors Runtime getRuntime availableProcessors ExecutorS
  • 如何从 WifiP2pDeviceList 获取 wifi direct 设备名称

    我想在执行请求对等点时获取 wi fi direct 名称 这是我的代码 if WifiP2pManager WIFI P2P PEERS CHANGED ACTION equals action Log d tag success dis
  • JavaFX Platform.runLater 的使用以及从不同线程访问 UI

    我有几个问题Platform runLater 我有一个 JavaFX 应用程序类 在这个类中 我运行一个线程 该线程从网络套接字读取数据 现在当我创建一个新的Stage在线程内部 系统抛出异常 JavaFX 事件调度程序线程和我的网络读取
  • 将 spring-security 与 spring-webflux 结合使用时禁用 WebSession 创建

    我正在使用 Rest api 运行无状态 spring boot 应用程序 并希望按照所述禁用 WebSessions 的创建https www baeldung com spring security session https www
  • 使用除 SINGLE_TABLE 之外的任何其他 Hibernate 继承策略时 JVM 崩溃

    好吧 这可能不太可能 但还是这样吧 在Java JRE 1 6 0 26 b03 中我有两个类 SuperControl及其子类SubControl 它们都需要是持久对象 我正在使用 Hibernate Annotations 来实现这一点
  • 要打乱的键值(整数、字符串)列表的最佳结构

    我需要在 Java 中实现一个结构 它是一个键值列表 类型为整数 字符串 并且我想对其进行洗牌 基本上 我想做类似的事情 public LinkedHashMap
  • 正确使用 JDBC 连接池 (Glassfish)

    我需要在 Java Web 服务中作为会话 bean 实现数据库连接 但我不确定我这样做是否正确 我创建了一个类 public final class SQLUtils private static DataSource m ds null
  • 用 java 编写解释器时的 switch 或 if 语句

    当前的作业需要我编写一个程序 以一种非常微小且基本的编程语言 行为有点像 FORTRAN 来读取包含指令的文件并执行这些指令 基本上它是我猜的语言的简单解释器 它是完全线性的 所有语句都是按顺序定义的 并且只有字符串和整数变量 我需要查找和
  • 尝试在java中的Arraylist中查找对象的所有出现

    我有一个 Java ArrayList 我需要查找其中出现的所有特定对象 ArrayList indexOf Object 方法只找到一次出现 所以看来我还需要其他东西 我认为你不需要太花哨 以下应该可以正常工作 static
  • Java 泛型:如何为泛型类型指定类类型?

    我有一个 POJO 指定为 MyClass u where U是泛型类型参数 我正在尝试编写一个接受类引用的实用方法Class u
  • 如何制作无限的jscrollpane?

    我之前已经实现过拖动滚动 但是创建无限滚动窗格的最佳方法是什么 当然不会有任何滚动条 我将实现拖动滚动 我想做的是在无限表面上实现动态加载 EDIT 当然 它实际上不会是无限的 我想问如何伪造它 您可以执行以下操作 AdjustmentCl
  • Java元数据读写

    是否可以以通用方式 对于所有图像类型 在 Java 中读取和写入元数据 我找到了一些示例 但它们总是特定的 例如 JPEG 或 PNG 我需要一些足够通用的东西 而不是到处都有 if else 语句 我不想重写源代码 但这是一个很好的例子
  • SimpleDateFormat 将 lenient 设置为 false 时出现异常

    为什么这段代码会抛出无法解析日期的异常 SimpleDateFormat f new SimpleDateFormat yyyy MM dd T HH mm ss 000Z f setLenient false String dateStr
  • 不要模拟值对象:过于通用的规则,没有解释

    以下是 Mockito 单元测试框架的引用 不要模拟值对象 为什么有人会想要这样做呢 因为实例化对象太痛苦了 gt 无效 原因 如果创造新的装置太困难 那就是一个迹象 代码可能需要一些认真的重构 另一种方法是创建 价值对象的构建者 有一些工
  • Java ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 当删除倒数第二个元素时 没有 ConcurrentModificationException List
  • 战争库中的罐子爆炸

    我们可以将分解的 jar 文件放入 war web inf 库中吗 它在 JBOSS 4 2 中对我不起作用 我收到以下错误并且无法部署应用程序 Caused by javax management RuntimeOperationsExc
  • scala中的协变类型参数需要在java接口中保持不变

    我有一个看起来像这样的特征 一些进一步的信息可以在我自己提出了这个相关问题 https stackoverflow com questions 3695990 inheritance and automatic type conversio
  • 将带有 webapp 的 WAR 部署到 Maven 中央存储库是否有意义?

    这样做有意义吗 如果是 我在哪里可以找到使用简单的 Web Hello World 执行此操作的示例 当人们从 Maven 执行 Web 应用程序时 他们会使用 Jetty 来运行它吗 我想 tomcat 太重了 任何帮助将不胜感激 谢谢
  • JMockit - 初始化问题

    当我使用以下测试时 我收到警告 警告 JMockit 是按需初始化的 这可能会导致某些测试失败 请检查文档以获取更好的初始化方法 这是我的测试实现 package test import static mockit Mockit impor
  • Integer.parseInt 引发的 NumberFormatException

    嘿 我在学校上编码课 但老师没有很好地解释 所以我们必须在网上查找我所做的信息 但我无法找到代码中的错误 你能帮我吗 char end s do System out println Tipo de boleto char boleto c

随机推荐

  • 将 AngularJS 与 MeteorJS 结合使用

    所以我对这两种技术都相当陌生 我的计划是实施他们用 Backbone 制作的 Peepcode Tunes 项目 https github com philipkobernik backbone tunes https github com
  • Tensorflow:AttributeError:“NoneType”对象没有属性“original_name_scope”

    我正在尝试在谷歌云上的 debian 9 5 拉伸系统上运行一些 python 张量流代码 我正在使用该版本的tensorflow GPU版本 最新版本 并安装了适当的CODA和cuDNN软件 这是我的代码 import tensorflo
  • Android LibVLC 选项不起作用

    我正在使用 LibVLC 处理流 RTSP 我可以在可以查看流的地方使用它 但延迟设置为默认的约 2 秒 在 Ubuntu 桌面上 我可以使用以下选项启动 vlc 以大大改善延迟 vlc vvv rtsp 192 168 2 1 1234
  • 无法在React应用程序中运行puppeteer,找不到模块:编译时无法解析“ws”

    我想知道是否可以在我的 React 应用程序中运行 puppeteer 每当我尝试在我的 React 应用程序中运行 puppeteer 时 我都会收到 找不到模块 无法解析 ws 我已经尝试安装 ws 但仍然会出现相同的错误 简单的答案
  • XML 架构 (XSD) 中 xsd:union 的用途是什么?

    我出于某种目的正在解析 XSD 但面临一些 XSD 节点的问题 XSD 中 union 的用途是什么以及为什么使用它 它是否用于对 XML 施加某种限制 我正在附加联合和简单类型节点 请解释一下为什么使用它
  • 条形图中每个条形上的叠加线是什么?

    我正在尝试通过数据可视化来学习自己 当我浏览条形图时 我遇到了以下问题 在图表中 条形字符中的每个条形上都有一条垂直的黑线 那条覆盖的黑线到底意味着什么 感谢您的帮助 这个看起来像垂直的误差线 https en wikipedia org
  • 做 Laravel 教程,得到“未找到基表或视图:1146 表‘sdbd_todo.migrations’不存在”

    工作通过本教程 https www flynsarmy com 2013 12 creating a basic todo application with laravel 4 part 1 我执行以下步骤 您现在应该可以根据需要多次调用
  • 您可以从 p:ajax 侦听器更新 h:outputLabel 吗?

    我尝试使用 p ajax 标签 然后在该侦听器中设置一个名为 periodRendered 的值 然后我尝试通过 p ajax 标签的更新来更新 h outputLabel 标签 它没有更新 ajaxily 我认为这是因为 primefac
  • 按钮 ControlTemplate 和圆角

    我有一个按钮控制模板 我想制作带有圆角的按钮 我该怎么做 我尝试使用 CornerRadius 作为边框中的按钮 但它不起作用 按钮的背景已设置为具有角边框的图像 并且按钮看起来很尴尬 因为我无法设置按钮的角 请尝试以下操作
  • Flexbox的align-self属性没有转换?

    我尝试创建一个吗啡 按钮 它可以在另一个菜单上滑动 这个想法是基于 Codrops变形按钮概念 http tympanus net Development ButtonComponentMorph index5 html 现在已经差不多设置
  • 结构体中变量名前的点是什么意思?

    查看linux内核源代码 我发现了这一点 static struct tty operations serial ops open tiny open close tiny close write tiny write write room
  • Python 中循环链表的帮助

    我正在尝试制作一个循环单链表 我希望能够修改我的代码以获得单一喜欢的列表 但我遇到了一些麻烦 对于我的链接列表 我有 class Link object def init self data next None self data data
  • 在运行时获取 RecyclerView 子视图的高度

    我正在尝试制作一个可扩展的 TextView 当用户按下按钮时它会展开 折叠 TextView 和 ImageButton 位于 CardView 中 该 CardView 添加到 RecyclerView 中 展开 折叠效果很好 但现在我
  • ViewPager2 崩溃

    我正在将高级导航组件与 BottomNavigationView 一起使用 In one tab我有ViewPager2 当我第一次单击该选项卡时 效果很好 尽管第二次 来吧 该选项卡应用程序不断崩溃 下面是崩溃日志 我怎样才能解决这个问题
  • 按下后退按钮时提示用户

    哪个是询问用户单击后退按钮时是否要退出应用程序的好地方 我考虑过onPause and onStop 但是只要应用程序落后于其他应用程序 这些方法就会触发 更新 应用程序还应该询问用户是否尝试通过按钮 在应用程序本身中 退出应用程序 而不是
  • 提取第二层嵌套字典中的所有键

    我想提取 2d 字典第二级中的所有键 但 python 解释器返回 NameError 我的预期结果是 aa bb cc aaa bbb ccc gt gt gt adict defaultdict
  • 在c#中如何检查文件是否正在使用? [复制]

    这个问题在这里已经有答案了 如何检查我正在处理的 Excel 文件 操作其数据 删除它或覆盖它 是否正在被另一个程序使用 以及如何从中释放它 请指导我使用 C 尝试用 用于写作 的标志打开 如果失败 该文件将被其他进程 获取 FileStr
  • 使用 JQuery 发布 JSON 并设置 HTTP 内容类型 - 'application /json'

    我正在使用 jquery 将 Json 数据发布到服务器 但是 当我发出如下的帖子请求时 ajax type POST url uri data jsonStrJson contentType application json succes
  • 从剪贴板(从 Excel 粘贴)获取包含重音字符的 CSV 数据

    SCENARIO 我的用户将从 Excel 复制单元格 从而将其放入剪贴板 我的应用程序将从剪贴板检索这些单元格 问题 我的代码从剪贴板检索 CSV 格式 但是 如果原始 Excel 内容包含像 带变音符号的字符 这样的字符 则检索到的 C
  • 如何将对象传递到 Thymeleaf 中的模式对话框?

    我有一个thymeleaf在表中显示数据库内容 人员 的页面 tr td td td td td td td td tr