【发布时间】:2017-09-03 06:54:26
【问题描述】:
我使用 Spring MVC 应用程序,我希望在单击 JSP 页面中的按钮后执行 POST 方法。登陆页面看起来像,
我想在点击Generate Address按钮后执行下面的Spring方法,
@PostMapping(value = "/generateAddress")
public String generateAddress() {
walletService.generateAddress();
return "redirect:/";
}
What I would like to achieve
单击Generate Address 按钮后,我想向generateAddress 方法发出POST 请求。
带有按钮代码的JSP页面,
<body class="page_container">
<div class="wallets_page">
<form id="mnfrm" action="/" method="get" target="_blank">
<div class="buttons_box">
<button type="button" class="btn btn-default btn-lg active">
Generate address
</button>
<button type="submit" class="btn btn-default btn-lg active" <%= wallets.isEmpty() ? "disabled" : ""%>
onclick="setFormAction('mnfrm', '/balance')">Balance
</button>
<button type="submit" class="btn btn-default btn-lg active" <%= wallets.isEmpty() ? "disabled" : ""%>
onclick="setFormAction('mnfrm', '/transactions')">Transactions
</button>
<button type="submit" class="btn btn-default btn-lg active" <%= wallets.isEmpty() ? "disabled" : ""%>
onclick="setFormAction('mnfrm', '/sendMoney')">Send money
</button>
</div>
<div class="addresses_box">
<label for="addressId">Address</label>
<select id="addressId" name="id" class="form-control">
<c:forEach var="wallet" items="${wallets}">
<option value="${wallet.id}"><c:out value="${wallet.address}"></c:out></option>
</c:forEach>
</select>
</div>
</form>
</div>
我试图在 button 中设置一个 onclick 不起作用。
<button type="button" class="btn btn-default btn-lg active">
Generate address
</button>
关于如何正确执行的任何建议?
More Info
这是打开main.jsp登陆页面的方法,
@GetMapping(value = "/")
public String showBitcoinWallet(final Model model) {
List<WalletInfo> wallets = walletService.getAllWallets();
model.addAttribute("wallets", wallets);
return "main";
}
【问题讨论】:
-
你能澄清你想要达到的目标吗?如果您想进行 ajax 调用(无需重新加载页面),那么您的第二篇文章是正确的方法。另一方面,如果您想进行正常的发布调用(将重新加载页面的表单提交),那么您需要更正您的控制器代码。请参考此链接spring.io/guides/gs/handling-form-submission
-
我让问题变得更简单,并澄清了我想要实现的目标
-
那么你应该点击我在之前评论中发布的链接。
-
我已经通过
Ajax POST请求实现了
标签: java spring jsp spring-mvc