zoukankan      html  css  js  c++  java
  • SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法

    以后的开发,大部分是发送ajax,因此这四种传递参数的方法,并不太常用。作为了解吧

    第一种:使用原生 Servlet

    在控制器的响应的方法中添加Servlet中的一些作用域:HttpRequestServlet,或者HttpSession。

    【注意】在方法中,ServletContext的对象是不能作为函数参数传递的

      @RequestMapping("/demo01")
        public String demo01(HttpServletRequest req,HttpSession sessionParam) {
            //request 作用域
            req.setAttribute("req", "req的值");
            //session作用域
            sessionParam.setAttribute("sessionParam", "sessionParam的值");
            HttpSession session = req.getSession();
            session.setAttribute("session", "session 的值");
            //application作用域
            ServletContext application =req.getServletContext();
            application.setAttribute("application","application 的值");
                    
            return "/index.jsp";
        }

    那么在index.jsp页面中就可以通过上面的application域,session域,request域访问上面HandlerMethod返回的参数。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        request:${requestScope.req }<br/>
        session:${sessionScope.session }<br/>
        sessionParam:${sessionScope.sessionParam }<br/>
        application:${applicationScope.application }<br/>
    </body>
    </html>

    【注意】SpringMVC的HandlerMehtod方法中是不可以直接通过getServletContext方法来获取ServletContext对象的,应为这个方法是Servlet对象中的方法,但是可以通过request对象调用request对象中的getServletContext()方法来获取getServletContext对象

    第二种:使用 Map 集合

    2.1 把 map 中内容放在 request 作用域中

    2.2 spring 会对 map 集合接口进行实现,实现类其实是 BindingAwareModelMap 

    @RequestMapping("demo2")
    public String demo2(Map<String,Object> map){
      System.out.println(map.getClass());
      map.put("map","map 的值");
      return "/index.jsp";
    }
    map:${map }<br/>
    map:${requestScope.map}

    第三种:使用 SpringMVC 中 Model 接口,本质也是通过request域,把内容最终放入到 request 作用域中.

        @RequestMapping("/demo03")
        public String  demo03(Model model) {
            model.addAttribute("model", "model 的值");
            return "/index.jsp";
        }
    model:${model }<br/>
    model:${requestScope.model }<br/>

    第四种:使用 SpringMVC 中 ModelAndView 类

        @RequestMapping("/demo4")
        public ModelAndView demo4(){
            //参数,跳转视图
            ModelAndView mav = new ModelAndView("/index.jsp");
            mav.addObject("mav", "mav 的值");
            mav.addObject("mavKey", "mav的值");
            return mav;
        }
        mav:${mav }<br/>
        mav:${mavKey }<br/>
  • 相关阅读:
    两角和的正切
    积化和差与和差化积
    require.js的简单使用
    HTML、css、javascript、DOM编程
    SignalR长连接的简单用法
    【ESP8266】发送HTTP请求
    记录自己的第一篇博客
    1 为什么搭建.Net core下的云开发框架
    C#线程中LOCK的意义
    ping命令执行过程详解
  • 原文地址:https://www.cnblogs.com/cplinux/p/9822711.html
Copyright © 2011-2022 走看看