我想在服务器端重定向页面(使用 spring),但 URL 应保持不变。
例如:如果用户尝试 http://www.example.com/page1 ,我想渲染 http://www.example.com/page2 的内容在浏览器中,但 URL 仍应指向 http://www.example.com/page1 .
我尝试了 301、302、307 重定向,但所有页面 URL 都更改为 http://www.example.com/page2 .
有什么办法可以实现这个目标吗?
最佳答案
这是一个术语问题。您要寻找的是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");
}
}
关于Spring MVC - 处理重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20846667/