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为另一个请求/
          }
      
      }
      
  • 相关阅读:
    四叉树空间索引原理及其实现
    深入理解空间搜索算法 ——数百万数据中的瞬时搜索
    空间索引
    Microsoft.Office.Core 引用以及 Microsoft.Office.Core.MsoTriState 的问题
    Visual studio 2017 中的Javascript智能提示与调试
    EasyUI Tooltip 提示框
    java编程中的断言工具类(org.springframework.util.Assert)
    Guava学习笔记:Google Guava 类库简介
    Jquery autocomplete插件
    easyui-textbox
  • 原文地址:https://www.cnblogs.com/dreamzone/p/12485654.html
Copyright © 2011-2022 走看看