SpringMVC 几种页面跳转方式总结如下:
1.不使用ModelAndView
1)、通过HttpServletResponse的API直接输出(不需要配置渲染器)@Controllerpublic class RequestController{ @RequestMapping("/resp") public void test(HttpServletRequest req, HttpServletResponse resp) throws Exception { resp.getWriter().println("hello HttpServletResponse"); }2)、 使用HttpServletResponse 重定向到另一个视图(其他不变 ) @RequestMapping("/resp") public void test(HttpServletRequest req, HttpServletResponse resp) throws Exception { resp.sendRedirect("index.jsp"); }3)、 使用HttpServletRequest 转发(默认访问/下的index.jsp页面 不受渲染器的影响)@RequestMapping("/resp") public void test(HttpServletRequest req, HttpServletResponse resp) throws Exception { req.setAttribute("message","it's forword "); req.getRequestDispatcher("index.jsp").forward(req,resp); }4)、直接返回jsp页面的名称(无渲染器) @RequestMapping("/nice") public String test(){ //转发方式1 return "home.jsp"; //转发方式2 return "forward:index.jsp"; //重定向方式 return "redirect:index.jsp"; }5)、当有渲染器指定@RequestMapping("/nice") public String hello1(){ //转发方式1 return "home"; //转发方式2 return "forward:index"; //重定向方式 hello指的是requsrmapping return "redirect:hello"; }2、使用ModelAndView @Overridepublic ModelAndView test(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws Exception { ModelAndView mv = new ModelAndView(); //封装要显示到视图的数据 mv.addObject("msg","hello myfirst mvc"); //通过视图名跳转 mv.setViewName("hello"); return mv;
//跳转到服务器内部的一个功能处理方法 //return new ModelAndView("forward:test.jsp"); //重定向一个功能方法 //return new ModelAndView("redirect:test.jsp");}