我使用Spring应用程序,在这里我想在单击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>我尝试在onclick中设置一个不能工作的button。
<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";
}发布于 2017-09-03 09:26:44
我已经用按钮id和Ajax POST请求结合起来解决了这个问题。解决方案非常简单,我需要一个mvn clean才能解决。
地址按钮
<button id="genAddress" type="button" class="btn btn-default btn-lg active">
Generate address
</button>Ajax POST请求,
<script>
$("#genAddress").click(function () {
$.ajax({
type: "POST",
url: 'generateAddress',
success: function (data) {
console.log("Wallet address generation success!")
},
failure: function (errMsg) {
console.log(errMsg.toString())
}
});
});
</script>我以为我们可以在不提供任何数据的情况下提出POST请求,但不确定如何做到这一点。好的,只需从Ajax POST请求中删除数据提供代码:)
如前所述,这是从POST控制器执行Spring请求的方法。
@PostMapping(value = "/generateAddress")
public String generateAddress() {
walletService.generateAddress();
return "redirect:/";
}https://stackoverflow.com/questions/46021014
复制相似问题