Spring MVC - 处理重定向

时间:2013-12-30 20:05:53

标签: spring spring-mvc redirect

我想在服务器端重定向页面(使用spring),但URL应该保持不变。

例如:如果用户尝试http://www.example.com/page1,我想在浏览器中呈现http://www.example.com/page2的内容,但网址仍应指向http://www.example.com/page1

我尝试了301,302,307重定向,但所有网页网址都更改为http://www.example.com/page2

无论如何要实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

这是一个术语问题。您要找的是forward而不是redirect。如果你有兴趣,你可能想看看它,例如在这里:http://www.javapractices.com/topic/TopicAction.do?Id=181

至少有两种方法可以做到这一点:

繁体,RequestDispatcher也可以在Spring WebMVC应用程序之外使用。

public class MyController extends AbstractController {

    @Override
    protected void handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
    throws Exception {
        request.getRequestDispatcher("/new/path").forward(request, response);
    }
}

Spring WebMVC表示法:

public class MyController extends AbstractController {

    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response)
    throws Exception {
        return new ModelAndView("forward:/new/path");
    }
}