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返回。

  • 相关阅读:
    package.json与package-lock.json的区别
    ES6(一) let和const
    JSON对象的代码中不能有注释语句
    详解webpack4打包--新手入门(填坑)
    解决“webpack不是内部或外部命令”(基于webpack4.X)
    解决“npm不是内部或外部命令“
    静态页之间传值
    详解animate.css动画插件用法
    基于PIL模块创建验证码图片
    python中单下划线的变量
  • 原文地址:https://www.cnblogs.com/forever2h/p/6802442.html
Copyright © 2011-2022 走看看