浅谈Springmvc中的页面跳转问题

  

  

SpringMvc的控制器每次处理完数据后都会返回一个逻辑视图(视图)和模型(模型)

  

所以我们会看到原生的控制器是返回一个ModelAndView(内部包含了视图和模型)。

  

正常情况下(除非被@ModelAttribute注解了的方法),否则最终都会返回ModelAndView。

  

当然有时候一个功能处理方法不一定要返回一个逻辑视图,也可以重定向到另一个功能方法

  

服务器内部转发到一个逻辑视图或者另一个功能方法。

  

- - -   

SpringMvc的强大之处在于它封装了Servlet大量底层代码,但是有没有完全屏蔽用户对ServletAPI

  

的使用,所以SpringMvc中页面跳转也是分为两大类:

  

<强>使用ServletAPI实现页面跳转

  

重定向方式:由于重定向的本质是要求浏览器重新发送一个请求,SpringMvc里面的页面一般是放到web - inf下,浏览器不可以直接访问)

  

所以这里的重定向实质是重定向到另一个功能方法。

  

服务器内部请求转发:请求转发为服务器内部行为,所以可以直接跳转访问一个jsp页面也可以跳转到另一个功能处理方法。

  

' ' '文本

     //使用原生的ServletApi进行页面跳转   @RequestMapping (“/c”)   公共字符串测试(HttpServletResponse反应,HttpServletRequest请求)抛出ServletException, IOException {   System.out.println (“testC”);//跳转到服务器内部的一个页面//request.getRequestDispatcher (/web - inf/jsp/index . jsp) forward格式(请求、响应);//跳转到服务器内部的一个功能处理方法//request.getRequestDispatcher (/dispather/b) forward格式(请求、响应);//重定向一个功能方法   response.sendRedirect (request.getContextPath () + "/dispather/b ");   返回null;   }      

<强>使用SpringMvc的API实现页面跳转

  

直接返回逻辑视图名

        b文本@RequestMapping(“/?公共字符串的(){System.out.println(“的”);//直接返回一个视图返回“指数”;}      

返回自定义的ModelAndView:自定义ModelAndView时,可以重定向或请求转发

  

' ' '文本

     //控制器中使用ModelAndView进行跳转和重定向   @RequestMapping (/e)   公共ModelAndView证人(){   System.out.println(“证人”);//跳转到服务器内部的一个页面//返回“指数”;//跳转到服务器内部的一个功能处理方法//返回新ModelAndView(“转发:/dispather/b”);//重定向一个功能方法   返回新ModelAndView(重定向:/dispather/b);   }      

  

以上就是本文关于浅谈Springmvc中的页面跳转问题的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

  

参考:   

<强> Java编程实现springMVC简单登录实例

  

<强> SpringMVC拦截器实现单点登录

  

<强> springmvc其他风格介绍及实现代码示例

浅谈Springmvc中的页面跳转问题