首页 > 解决方案 > 如何在不使用 Spring Boot Async 重新加载页面的情况下提交表单?

问题描述

在提交表单并通过 JQuery 传递它时,我可以使用 Ajax 来完成。我想知道是否有使用 Spring Boot @Async 的替代方法?

到目前为止,这是我的代码,您可以看到 Post Request 仍然返回一个新的 ModelAndView 页面。

@GetMapping("/register")
public @Valid ModelAndView forPageScreen(@ModelAttribute("user") User user)
{   
    ModelAndView users = new ModelAndView("Practice");
    return users;
}


@Async
@Transactional
@PostMapping("/register")
public @Valid CompletableFuture<ModelAndView> addUser(@Valid @ModelAttribute("user") User user)
{
    ModelAndView mav = new ModelAndView("Practice");

    try {
        Thread.sleep(5000);
        userRep.save(user);

    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return CompletableFuture.completedFuture(mav);
}

标签: javajqueryajaxspring-bootasynchronous

解决方案


@Async用于服务器端异步,而不是 AJAX。这是完全不同的用例

我可以在提交表单并通过 JQuery 传递时使用 Ajax

这就是要走的路。异步应该在客户端处理(在这种情况下是 JQuery)。就服务器而言,该 httpRequest 没有任何异步(在这种情况下)


推荐阅读