java - 如何在不使用 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);
}
解决方案
@Async
用于服务器端异步,而不是 AJAX。这是完全不同的用例
我可以在提交表单并通过 JQuery 传递时使用 Ajax
这就是要走的路。异步应该在客户端处理(在这种情况下是 JQuery)。就服务器而言,该 httpRequest 没有任何异步(在这种情况下)
推荐阅读
- azure - Azure SQL 数据库流量迁移到较新的网关
- windows - 将我的 QT 应用程序与 Inno Setup 中的视频/图像文件相关联
- c# - 如何在 WPF 中动态地将准备好的控件添加到包装面板?
- xpath - 过滤掉xpath中的div子元素
- python - 在 Python 中运行单元测试时避免导入父包
- amazon-web-services - 我在执行 aws cloudformation 模板时遇到错误,抛出错误 ROLLBACK_COMPLETE
- angular - 将 Angular 库集成到非 Angular 应用程序中
- apache-spark - 如何减少火花中的输入拆分数量
- python - 获取Python中字典的所有字段名称
- c# - net core 2.2 到 3.0 身份验证迁移 AddOpenIdConnect