zoukankan      html  css  js  c++  java
  • springmvc 之 处理方法的返回值类型

    1. void: 并且没有使用servletapi进行跳转,那么默认会将请求名作为试图名进行跳转。

    @RequestMapping("/login")
        public void login(User user){
        }

    结果:

    void: 在参数中使用了servletapi,并且在方法中使用servletapi进行了跳转。那么按照servletapi跳转的位置进行跳转。

    @RequestMapping("/login")
        public void login(HttpServletRequest req,HttpServletResponse resp){
            try {
                req.getRequestDispatcher("success.jsp").forward(req, resp);
            } catch (ServletException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    结果:

    使用servletAPI跳转页面,那么通过servletAPI来携带数据可以的,但是通过mvc的模型数据不能携带数据。

    2. ModelAndView 返回null 的时候,页面不会跳转。

    @RequestMapping("/login")
        public ModelAndView login(){
            System.out.println("login==========");
            return null;
        }

    当返回值没有指定视图名时,默认使用请求名作为视图名进行跳转。

    @RequestMapping("/login")
        public ModelAndView login(){
            return new ModelAndView();
        }

    当返回值指定了视图名,那么按照指定的试图名进行跳转。

    3. String: 如果返回值时null,那么以请求名作为视图名跳转。

          如果指定返回值,那么按照指定返回值作为视图名进行跳转,可以通过model,modelmap等携带数据

          如果返回值时带有“forword” 或者 “redired” 前缀,那么将会进行相应的请求转发和重定向,不能通过mvc的数据模型携带数据,可以通过servletApi来携带数据。

    4. 其他类型:只能在异步时可以通过json返回。

  • 相关阅读:
    二分查找(Binary Search)的几种变种形式
    深入理解jvm虚拟机读书笔记-垃圾收集器与内存分配策略(二)
    深入理解jvm虚拟机读书笔记-垃圾收集器与内存分配策略(一)
    Java8函数式编程
    Spring DBUnit 插入数据的时候如何处理自增ID
    IDEA Debug 技巧总结
    声明
    Mybatis最详细笔记
    关于jdbc概述
    SpringAOP(动态代理)
  • 原文地址:https://www.cnblogs.com/forever2h/p/6802442.html
Copyright © 2011-2022 走看看