首页 > 解决方案 > 将确认消息的结果传递给 spring mvc 控制器

问题描述

我在 spring mvc 中有一个项目分配,我有一个从表中删除元素的功能,我想实现对操作的确认。

我没有 js 经验,我在 w3schools 中看到了这段代码,但未能实现它,所以它可以为我工作。

JSP:
<td><a href="${deleteUrl}" onclick="deleteConfirm()">Delete</a></td>
<script>
    function deleteConfirm(){
        var confirmation = confirm("Do you really want to delete this item 
    from the list?");
        if(confirmation===false){
            var message = "false";
            return message;
        }
    }
 </script>


Controller : 
@GetMapping(Mappings.ITEMS)
public String booksList(Model model,HttpServletRequest request){
 String message = request.getAttribute("message").toString();
    if(message.equals("false")){
        return "redirect:/home";
    } else {
        delete elemtn ..
        ...
    }
  }

我可以检查任何来源吗?

标签: javascriptjavaspringjspjstl

解决方案


如果您调用由${deleteUrl}控制器处理的 URL,则无论确认弹出窗口如何,都会发生删除。

在 JavaScript 中,您必须使用函数绑定表中的文本/链接/按钮,该函数执行以下操作:

  1. 打开一个弹出窗口,然后...
  2. 确认后使用 AJAX 调用 URL。

为了简洁起见,让我们使用jQuery,我发现它是一个非常强大的库。我可以构建的最简单的代码如下所示:

function confirmDelete(url) {
    var result = confirm("Do you want to delete an entry?");      
    if (result) {
        $.ajax({
            type : "DELETE",
            contentType : "application/json",
            url : url,
            timeout : 10000,
            success : function(data) {
                // update the table
            },
            error : function(e) {
                // handle the error
            }
        });
    }
}

推荐阅读