【问题标题】:How to submit form without reloading the page using Spring Boot Async?如何在不使用 Spring Boot Async 重新加载页面的情况下提交表单?
【发布时间】:2018-09-20 15:19:25
【问题描述】:

在提交表单并通过 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);
}

【问题讨论】:

  • 您是说您希望页面自动重新加载吗?如果是这样,您已将 jquery 放入标签中,以便您可以使用 setinterval 调用调用 ajax 调用的函数
  • 不要对试图帮助你的人无礼。这不酷,而且违反了网站的CoC
  • 您好,我无意冒犯任何特别想帮助我的人。老实说,非常感谢,只是英语不是我的母语,所以如果我粗鲁或听起来鲁莽,我并不完全熟悉。如果我对任何人说过任何严厉的话,我对这件事感到非常抱歉。

标签: java jquery ajax spring-boot asynchronous


【解决方案1】:

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

我可以在提交表单并传递表单时使用 Ajax jQuery

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

【讨论】:

  • 感谢您的回答。毕竟,我将继续使用 AJAX 这样做。你能给我一个场景,其中服务器端的@Async 会有用吗?
  • @Async 使用示例:假设您要进行 2 个耗时的 SQL 查询,您可以并行触发两个查询(而不是等待一个完成后再触发另一个)
  • 感谢您向我澄清事情。我真的认为@Async 也可以处理客户端,因为它是异步的。显然,我错了,非常感谢你。我已经在这方面工作了好几天,并试图弄清楚@Async 是否可以完成这项工作。
  • 乐于助人。谢谢你告诉我。
猜你喜欢
  • 1970-01-01
  • 2014-08-10
  • 2023-03-31
  • 1970-01-01
  • 2016-01-20
  • 2016-12-05
  • 1970-01-01
  • 2013-08-20
相关资源
最近更新 更多