如何在Spring中的RequestMapping中返回Controller而不是View?

时间:2014-12-15 10:01:10

标签: spring spring-mvc java-ee

我有这样的情景:

  1. 用户打开表单以添加新用户。
  2. 用户填写所有字段,然后按"提交"。
  3. 必须将用户重定向到主页面。
  4. 主页包含来自数据库的数据,因此此页面需要控制器来加载数据。 在这一刻,添加用户的控制器如下所示:

    @RequestMapping(value = "/add", method = RequestMethod.POST)
    public String addNew(
        @ModelAttribute("user") User user,
        BindingResult result, SessionStatus status
    ) {
        if (result.hasErrors()) {
            return "AddUser";
        } else {
            status.setComplete();
            return "MainPage";
        }
    }
    

    问题是,在这种情况下,它打开MainPage.jsp而不调用相应的控制器,因此MainPage加载时没有来自Data Base的数据。 如何以正确的方式解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以返回"redirect:/main"而不是"MainPage",这将执行重定向到该映射,它将通过主页的控制器。

这假设您的主页面的请求映射设置为/main。如果它没有相应改变它。

可以找到更多信息here(搜索重定向)。