首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JSP按钮执行Spring中的方法

问从JSP按钮执行Spring中的方法
EN

Stack Overflow用户
提问于 2017-09-03 06:54:26
回答 1查看 1.8K关注 0票数 0

我使用Spring应用程序,在这里我想在单击JSP页面中的一个按钮后执行一个POST方法。登陆页看起来像,

​

​

单击Generate Address按钮后,我想执行以下Spring方法,

代码语言:javascript
复制
    @PostMapping(value = "/generateAddress")
    public String generateAddress() {    
        walletService.generateAddress();
        return "redirect:/";
    }

What I would like to achieve

单击Generate Address按钮后,我想向generateAddress方法发出一个POST请求。

带有按钮代码的JSP页面,

代码语言:javascript
复制
<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。

代码语言:javascript
复制
    <button type="button" class="btn btn-default btn-lg active">
          Generate address
    </button>

对如何做好它有什么建议吗?

More Info

这是打开main.jsp登陆页面的方法,

代码语言:javascript
复制
@GetMapping(value = "/")
    public String showBitcoinWallet(final Model model) {
        List<WalletInfo> wallets = walletService.getAllWallets();
        model.addAttribute("wallets", wallets);
        return "main";
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-03 09:26:44

我已经用按钮id和Ajax POST请求结合起来解决了这个问题。解决方案非常简单,我需要一个mvn clean才能解决。

地址按钮

代码语言:javascript
复制
<button id="genAddress" type="button" class="btn btn-default btn-lg active">
                Generate address
            </button>

Ajax POST请求,

代码语言:javascript
复制
<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请求的方法。

代码语言:javascript
复制
@PostMapping(value = "/generateAddress")
    public String generateAddress() {

        walletService.generateAddress();
        return "redirect:/";
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46021014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档