【问题标题】:Is it possible to change URL when returning ModelAndView from WEB-INF?从 WEB-INF 返回 ModelAndView 时是否可以更改 URL?
【发布时间】:2014-12-14 19:07:18
【问题描述】:

我正在使用 Spring MVC,我想知道当我从控制器返回 ModelAndView(视图位于 WEB-INF 文件夹中,因此重定向到它不起作用)时是否可以更改 URL?我的意思是当我返回它时,URL 是前一个,这很明显,因为调度程序正在工作,而不是重定向。

@RequestMapping(value = "/login", method = RequestMethod.POST)
    public ModelAndView authenticate(@RequestParam("login") String login, @RequestParam("password") String password) {
        ModelAndView modelAndView = new ModelAndView();
        User user = userDao.getUserByLogin(login);
        if (user != null && user.getPassword().equals(password)) {
            modelAndView.addObject("user", user);
            modelAndView.setViewName("home");
        }
        return modelAndView;
    }

所以我的 home 模型在 WEB-INF 文件夹中,所以 return redirect:/home 将无法使用它。是的,我可以用return home 重定向它,但在这种情况下,URL 不会改变。

【问题讨论】:

    标签: spring model-view-controller modelandview


    【解决方案1】:

    redirect:/url 用于其他方法并返回视图。

    当重定向模型属性在新方法中不可用时,要在重定向方法中获取它,请将其设置为 RedirectFlashAttributes

    希望对你有帮助。

    【讨论】:

    • 正如我所说,我的视图位于 WEB-INF 文件夹中,因此 'redirect:/url' 将不起作用,因为它无法通过 GET 请求到达。
    • 只要您的视图可以访问。如果您可以发布您的代码。
    • 只需返回视图即可访问,而不是重定向。但!如果我返回视图名称,它会重定向它而不更改 URL。
    猜你喜欢
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2014-10-31
    • 2019-06-17
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多