• 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为另一个请求/
          }
      
      }
      
  • 相关阅读:
    rsync命令 SCP命令
    Linux 性能分析 工具命令
    ntp时间服务器 时间同步
    Linux 邮件服务
    linux 手工释放内存 高内存 内存回收 方法思路
    LVM 逻辑卷 (logica volume manager)
    Linux 磁盘原理与管理 (分区 挂载)
    linux中查看nginx、apache、php、mysql配置文件路径
    shell脚本 监控ps 不存在则重启
    Shell脚本 一键重启
  • 原文地址:https://www.cnblogs.com/dreamzone/p/12485654.html
Copyright © 2020-2023  润新知