Spring Boot - 重定向到不同的控制器方法

新手上路,请多包涵

我正在使用 SpringBoot 和 Thymeleaf 创建一个非常基本的应用程序。在控制器中,我有两种方法如下:

Method1 - 此方法显示数据库中的所有数据:

   @RequestMapping("/showData")
public String showData(Model model)
{
    model.addAttribute("Data", dataRepo.findAll());
    return "show_data";
}

Method2 - 此方法将数据添加到数据库:

 @RequestMapping(value = "/addData", method = RequestMethod.POST)
public String addData(@Valid Data data, BindingResult bindingResult, Model model) {
    if (bindingResult.hasErrors()) {
        return "add_data";
    }
    model.addAttribute("data", data);
    investmentTypeRepo.save(data);

    return "add_data.html";
}

HTML 文件对应于这些方法,即 show_data.html 和 add_data.html。

addData 方法完成后,我想显示数据库中的所有数据。但是,上面将代码重定向到静态 add_data.html 页面,并没有显示新添加的数据。我需要以某种方式调用控制器上的 showData 方法,因此我需要将用户重定向到 /showData URL。这可能吗?如果是这样,如何做到这一点?

原文由 Revansha 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 607
2 个回答

尝试这个:

 @RequestMapping(value = "/addData", method = RequestMethod.POST)
public String addData(@Valid Data data, BindingResult bindingResult, Model model) {

    //your code

    return "redirect:/showData";
}

原文由 sparrow 发布,翻译遵循 CC BY-SA 4.0 许可协议

您应该从 addData 请求中返回一个 http 状态代码 3xx,并将重定向 url 放入响应中。

原文由 niekname 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进