zoukankan      html  css  js  c++  java
  • Springmvc:(四) 结果跳转方式

    一、ModelAndView

    1. 视图解析器

      <!-- 视图解析器 -->
      <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
            id="internalResourceViewResolver">
          <!-- 前缀 -->
          <property name="prefix" value="/WEB-INF/jsp/" />
          <!-- 后缀 -->
          <property name="suffix" value=".jsp" />
      </bean>
      

      controller

      public class ControllerTest1 implements Controller {
      
          public ModelAndView handleRequest(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
              //返回一个模型视图对象
              ModelAndView mv = new ModelAndView();
              mv.addObject("msg","ControllerTest1");
              mv.setViewName("test");
              return mv;
          }
      }
      

    二、ServletAPI

    导入依赖
    <dependency>
     <groupId>javax.servlet</groupId>
     <artifactId>javax.servlet-api</artifactId>
     <version>4.0.1</version>
    </dependency>
    

    通过设置ServletAPI,不需要设置视图解析器

    1. 通过HttpServletResponse进行输出,重定向,转发
    @Controller
    public class ResultGo {
    
        @RequestMapping("/result/t1")
        public void test1(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
            rsp.getWriter().println("Hello,Spring BY servlet API");
        }
    
        @RequestMapping("/result/t2")
        public void test2(HttpServletRequest req, HttpServletResponse rsp) throws IOException {
            rsp.sendRedirect("/index.jsp");
        }
    
        @RequestMapping("/result/t3")
        public void test3(HttpServletRequest req, HttpServletResponse rsp) throws Exception {
            //转发
            req.setAttribute("msg","/result/t3");
            req.getRequestDispatcher("/WEB-INF/jsp/test.jsp").forward(req,rsp);
        }
    
    }
    

    三、springmvc

    通过springmvc来实现转发和重定向,

    • 无需视图解析器
    @Controller
    public class ResultSpringMVC {
        @RequestMapping("/rsm/t1")
        public String test1(){
            //转发
            return "/index.jsp";
        }
    
        @RequestMapping("/rsm/t2")
        public String test2(){
            //转发二
            return "forward:/index.jsp";
        }
    
        @RequestMapping("/rsm/t3")
        public String test3(){
            //重定向
            return "redirect:/index.jsp";
        }
    }
    
    • 有视图解析器

      @Controller
      public class ResultSpringMVC2 {
          @RequestMapping("/rsm2/t1")
          public String test1(){
              //转发
              return "test";
          }
      
          @RequestMapping("/rsm2/t2")
          public String test2(){
              //重定向
              return "redirect:/index.jsp";
              //return "redirect:hello.do"; //hello.do为另一个请求/
          }
      
      }
      
  • 相关阅读:
    运算符
    数据运算
    login_code
    headless&unittest
    dict-test
    list_test
    string_test
    python1113
    堆排序
    java线程同步问题
  • 原文地址:https://www.cnblogs.com/dreamzone/p/12485654.html
Copyright © 2011-2022 走看看