第三讲 跳转结果的方式

一、 设置ModelAndView对象,根据View的名称,和视图解析器跳转到指定的页面
       页面:视图解析器的 前缀 + view-name + 视图解析器的 后缀

     @RequestMapping(value="/hello")
     public ModelAndView handleRequest(HttpServletRequest request,
                HttpServletResponse response) throws Exception {
            //新建一个ModelAndView对象
           ModelAndView mv = new ModelAndView();
            //封装要显示到视图中的数据
           mv.addObject("msg", "Hello, spring mvc!");
            //设置视图名
           mv.setViewName("hello"); //WEB-INF/jsp/hello.jsp
           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>


二、通过ServletAPI来实现

  1. 通过HttpServletResponse来进行输出

     @RequestMapping(value="/hello")
     public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
           response.getWriter().write("Hello spring mvc use httpServlet API");
     }

  1. 通过HttpServletResponse实现重定向

     @RequestMapping(value="/hello")
     public void hello(HttpServletRequest request, HttpServletResponse response) throws IOException {
            //实现重定向
           response.sendRedirect("index.jsp");
     }

  1. 通过HttpServletRequest实现重定向

     @RequestMapping(value="/hello")
     public void hello(HttpServletRequest request, HttpServletResponse response)
                throws IOException, ServletException {
          //实现转发
          request.setAttribute("msg", "servlet api forward");
          request.getRequestDispatcher("index.jsp").forward(request, response);
     }

   使用ServletAPI来实现不需要配置视图解析器

三、通过Spring MVC来实现

  1. 通过Spring MVC来实现转发重定向-没有视图解析器

          转发的实现:

     @RequestMapping(value="/hello")
     public String hello() {
            //转发1
           return "index.jsp";
     }

     @RequestMapping(value="/hello")
     public String hello() {
            //转发2
           return " forward:index.jsp";
     }

          重定向的实现:

     @RequestMapping(value="/hello")
     public String hello() {
            //重定向
           return " redirect:index.jsp";
     }

   不需要配置视图解析器

  1. 通过Spring MVC来实现转发重定向-有视图解析器

          转发方式:

     @RequestMapping(value="/hello")
     public String hello() {
           return "hello";
     }

   注意:重定向"redirect:index.jsp" 不需要视图解析器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值