我的Thymleaf页面具有以下形式:
<div class="panel-body">
<table class="table table-bordered table-striped">
<thead>
<tr>
<th>Issue Date</th>
<th>Payment Schedule</th>
<th>Total</th>
<th>Status</th>
<th>Start Date</th>
<th>End Date</th>
<th>Send Invoice</th>
</tr>
</thead>
<tbody>
<tr class="table-row" th:each="p : ${POList}">
<td th:text="${p.issueDate}"></td>
<td th:text="${p.paymentSchedule}"></td>
<td th:text="${p.total}"></td>
<td th:text="${p.status}"></td>
<td th:text="${p.rentalPeriod.startDate}"></td>
<td th:text="${p.rentalPeriod.endDate}"></td>
<td>
<form style='float:left; padding:5px; height:0px' th:object="${po}" th:method="post" th:action="@{'/dashboard/makeAndSendInvoice(email=${po.Email})'}">
<button class="btn btn-default btn-xs" type="submit">Send Invoice</button>
</form>
</td>
</tr>
</tbody>
</table>
</div>
我试图将值发送po.Email
给该方法。我以为th:action="@{'/dashboard/makeAndSendInvoice(email=${po.Email})'}"
会像这样的链接dashboard/makeAndSendInvoice/{Email}
所以我试图通过这样的方法来获取它:
@RequestMapping(method=POST, path="makeAndSendInvoice")
public String makeAndSendInvoice(@PathVariable("email") String email){
System.out.println("Invoice is sent to..................."+email);
return "Invoice";
}
但在我看来,它不起作用,因为它无法识别我的方法。那么如何才能收到po.Email
我的方法
更改th:action
为:
th:action="@{/dashboard/makeAndSendInvoice/{email}(email=${po.Email})}"
并PathVariable
在RequestMapping
值中添加,例如:
@RequestMapping(method=POST, path="/dashboard/makeAndSendInvoice/{email:.+}")
public String makeAndSendInvoice(@PathVariable("email") String email) {
URL路径中也允许使用变量模板,例如
@{/order/{orderId}/details(orderId=${orderId})}
<!-- Will produce '/gtvg/order/details?orderId=3' (plus rewriting) --> <a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a> <!-- Will produce '/gtvg/order/3/details' (plus rewriting) --> <a href="details.html" th:href="@{/order/{orderId}/details(orderId=${o.id})}">view</a>
在Spring MVC中,您可以
@PathVariable
在方法参数上使用批注将其绑定到URI模板变量的值:@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET) public String findOwner(@PathVariable String ownerId, Model model) { Owner owner = ownerService.findOwner(ownerId); model.addAttribute("owner", owner); return "displayOwner"; }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句