我想将两个对象从thymeleaf表单传递到控制器。这是我的ThymileAF代码:
<!DOCTYPE html>
<html lang='en' xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="ISO-8859-1"/>
<title>Payment Page</title>
</head>
<body>
<h1>Payment List</h1>
<table>
<tr>
<th>StuId</th>
<th>Month</th>
<th>Amount</th>
</tr>
<tr th:each="payment:${student.payments}">
<td th:text="${student.id}">2</td>
<td th:text="${payment.month}">devesh</td>
<td th:text="${payment.amount}">23</td>
</tr>
</table>
<h3>Add a Payment</h3>
<form action="#" th:action= "@{/payments}" th:object="${payment}" method="POST">
<div th:object="${student}" >
<label for="name">Month:</label>
<input type="text" name="month" size="50"></input><br/>
<label for="amount">Amount:</label>
<input type="text" name="amount" size="50"></input><br/>
<input type = "submit"/></form>
</body>
</html>
在表单中,除了这里实际提交的付款对象之外,我想将学生对象或id传递给我的控制器,因为任何付款都应该对应于特定的学生。我找了很多,直到现在才找到办法。
PaymentController方法,我希望在其中传递对象,因为我使用提交表单,所以无法在th:action中传递变量
@RequestMapping(method = RequestMethod.POST, value = "/{id}/payments")
public String doPayment(@ModelAttribute("payment") PaymentRecord paymentRecord, @PathVariable int id) {
Student st = studentService.getStudentInfo(id);
st.addPayments(paymentRecord);
System.out.println("entered into do payment");
studentService.addStudent(st);
paymentService.doPayment(paymentRecord);
return "redirect:{id}/payments";
}
请建议。我被困在这里了
而不是:
return "redirect:{id}/payments";
试试这个:
return "redirect:" + id + "/payments";
或者(如果需要引导/在重定向中):
return "redirect:/" + id + "/payments";
当然,如果您想“获取”多个OBJ,则可以执行以下操作:
@RequestMapping(value = { "/deleteuserdocument/{docid}/{userid}" }, method = RequestMethod.GET)
这来自我的github repo,我在那里“获取”特定用户ID的documentid。希望这能有所帮助。
你可以用不同的方法。
但首先,让我们将post方法注释缩短为:
@刚需映射(方法=刚需方法。POST, value="/{id}/付款")
到
@PostMapping(“/{id}/payments”)
我还将变量id
更改为studentId
,以便下一个阅读代码的人更清楚地了解它。
现在,将变量作为隐藏输入类型包含在表单标记中:
<代码>
那你也可以
a)添加一个String学生ID
属性到你的PaymentRecords
类。然后在post方法中,可以调用paymentRecord.getStuentId()
;
或
b) 将studentId
的请求参数添加到使用@PostMapping
映射的方法中。因此,您的方法签名可以具有@RequestParam(String studentId)
。在这种情况下,studentId
的值将完全公开给用户。
或
c) 使用@RequestBody
并将值映射到bean。你可以进一步阅读这个话题,看看这个问题的背景。
我的问题是: 在FooController中: 假设我有一个带有“status”变量的另一个对象栏。如何传递该对象,以便在相同的表单中提交输入? 如: 已经谢谢了。
如果对象为NULL,则无法传递对象项目。如何将对象从HTML传递给spring控制器?
我正在尝试将对象从AJAX传递给Spring控制器。我基本上尝试了我在SO和大量其他在线资源上遇到的所有解决方案,但都无济于事。我不知道我做错了什么,所以我寻求您的帮助。我正在开发一个简单的网络商店,此时我想做的就是将登录值(用户名和密码)从html文件上的模态表单传递给控制器。这是我的代码:LoginCredentials.java 指数html(删除大部分引导的html部分) 我ndex.ht
我正在尝试在更改选项后将我的Thymeleaf超文本标记语言中已经提供的List传回控制器。我尝试过隐藏输入,但不幸的是,它还不起作用。 我的表单如下所示(控制器已经提供了“电影”列表) 我的控制器看起来像这样: 期待有人能帮助我!
我的控制器代码: 但不管用。
我有使用Springboot和Thymeleaf模板编写的简单Web应用程序。报告控制器从表单接收数据并构建TestPlanReportReportACK对象,该对象作为模型属性添加如下: 我可以在“图表”thymeleaf模板中使用该数据并显示我需要的数据,但我需要在单击按钮时将完全相同的对象发送回控制器,但我得到TestPlanReportACK对象作为设置空值的参数。 以下是我的按钮在图表模