spring - spring boot 将参数从列表传递到控制器
问题描述
我认为我有一个对象列表:
<tbody>
<tr th:each="object : ${myObjects}">
<td><span th:text="${object.id}"> </span></td>
<td><span th:text="${object.name}"> </span></td>
<td><span th:text="${object.address}"></span></td>
<td>
<a href="#" data-toggle="modal" data-target="#ADD_SOME_INFO_MODAL">
<i class="fas fa-plus"></i>
</a>
</td>
</tr>
</tbody>
最后一列中的按钮启动模式。在模态中,我可以为记录添加一些值:
<form th:action="@{/add-data}"
method="post"
class="form">
<input name="NEW-DATA">
<div class="modal-footer">
<button name="login-submit"
type="submit">
<i class="fas fa-plus"></i>
</button>
</div>
</form>
这是我的控制器:
@PostMapping("/add-data")
public String addData(@RequestParam String URL) {
... do logic...
return "index";
}
我在我的方法中得到了正确的输入值addData()
,但是我找不到一种方法来从首先在列表上单击的对象传递一个 id。我需要这个对象 ID 才能正确存储附加信息。我想可能会做一个单独的页面来为每条记录添加这些信息,但这似乎不适合简单和小的编辑/添加。有什么方法可以在 Spring Boot 中添加对模态的编辑?我无法在任何地方找到正确的答案,所以我在这里。
解决方案
您将 URL 参数传递给控制器,只需以相同的方式将值传递给控制器。
你需要的粘合剂是 JavaScript。当用户单击按钮打开模态时,使用 JS 将值复制到模态表单标签上的隐藏输入字段中。提交表单后,您复制的值也将被提交并在您的控制器中可用。您可以使用虚拟值编写隐藏的输入字段,然后通过 JS 更改该值。
<input type="hidden" id="myHiddenField" name="myHiddenField" value="CHANGE_ME">
您打开模式的按钮可能如下所示:
<i class="fas fa-plus" onclick="document.getElementById('myHiddenField').value='${object.id}'"></i>
现在模态表单中的隐藏字段具有您想要的值。
推荐阅读
- c# - 根据我的api返回的内容设置我的属性变量并填充动态创建的变量
- visual-studio-code - VSCode Intellisense 在 Jupyter Notebook Extension(MacOS)中不起作用
- python - 在OpenCV python中绘制最大面积轮廓的质心
- sql - 从特定键开始选择记录
- mysql - 对于按主键索引的顺序放置分区键的位置是否有一般规则?
- mysql - 我想在 MySQL 上的 while 条件中添加一个属性
- html - 如何在 HTML 中使用 div 标签
- amazon-redshift - 在 Redshift 中查找下一个最旧的行
- linux - 使用服务在 .bash 中启动 .sh 或在服务中启动 .sh 文件
- typescript - 异步函数需要 Visual Studio 2019 中的“Promise”构造函数