springMVC_05结果跳转方式

一.总结

  总共有四个,

  1.设置ModelAndView的值,根据view和视图解析器跳转到指定的页面

  2.通过servletapi对象来实现,不需要视图解析器

  3.通过springmvc来实现转发和重定向不需要视图解析器

  4.通过springmvc来实现转发需要视图解析器,

  注意:重定向不需要视图解析器

二.详细

  1.设置ModelAndView的值,根据view和视图解析器跳转到指定的页面

    页面:视图解析器前缀+viewname+视图解析器后缀

  public ModelAndView handleRequest(HttpServletRequest req,
              HttpServletResponse resp) throws Exception {
         // TODO Auto-generated method stub
          ModelAndView mv=new ModelAndView();
          
          //设置要显示到视图的信息
          mv.addObject("msg", "hello springmvc");
          //设置视图名称
          mv.setViewName("hello");
          
          return mv;
      }
    视图解析器
  <!-- 配置渲染器 -->
      <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
          <!-- 将视图名 渲染后视图的前缀 -->
          <property name="prefix" value="/WEB-INF/jsp/"/>
          <!-- 渲染后视图的后缀 -->
          <property name="suffix" value=".jsp"/>
          <!-- 例:视图名为:hello   渲染后:/WEB-INF/jsp/hello.jsp 该页面-->
     </bean>

  2.通过servletapi对象来实现,不需要视图解析器

     * @throws IOException */
    @RequestMapping("/hello1")
    public void hello(HttpServletRequest req,HttpServletResponse resp) throws IOException{
        resp.getWriter().println("this is use servlet api to success");
    }

  3.通过springmvc来实现转发和重定向不需要视图解析器

    转发1
@RequestMapping("/hello2")
    public String hello2(){
        //转发和重定向之间的区别,转发地址不变,重定向地址改变
        //默认寻找webroot内的界面
        return "index.jsp";
    }
    转发2
    @RequestMapping("/hello2")
    public String hello2(){
        //转发和重定向之间的区别,转发地址不变,重定向地址改变
        //转发1,默认寻找webroot内的界面
        return "forward:index.jsp";
    }
   重定向
    @RequestMapping("/hello2")
    public String hello2(){
        //转发和重定向之间的区别,转发地址不变,重定向地址改变
        //转发1,默认寻找webroot内的界面
        return "redirect:index.jsp";
    }

  4.通过springmvc来实现转发需要视图解析器

@RequestMapping("/hello2")
    public String hello2(){
    //默认寻找设定的界面
    return "forward:hello.do";
}
原文地址:https://www.cnblogs.com/aihuadung/p/10107755.html