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/>
SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法的更多相关文章
- jsp传递参数的四种方法
		1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a= ... 
- JSP页面间传递参数的5种方法
		JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ... 
- SpringMVC学习(十一)——SpringMVC实现Resultful服务
		http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ... 
- (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务
		http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ... 
- JSP向后台传递参数的四种方式
		Jsp页面传值的方法 一.通过Form表单提交传值 客户端通过Form表单提交到服务器端,服务器端通过 Java代码 request.getParameter(String xx); 来取得参数(xx ... 
- jnhs-SpringMVC jsp页面向controller传递参数的五种方式
		一共是五种传参方式: 一:直接将请求参数名作为Controller中方法的形参 public String login (String username,String password) : 解 ... 
- (转)SpringMVC学习(三)——SpringMVC的配置文件
		http://blog.csdn.net/yerenyuan_pku/article/details/72231527 读者阅读过SpringMVC学习(一)——SpringMVC介绍与入门这篇文章后 ... 
- (转)SpringMVC学习(一)——SpringMVC介绍与入门
		http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ... 
- (转)SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解
		http://blog.csdn.net/yerenyuan_pku/article/details/72511749 高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编 ... 
随机推荐
- Substring方法(C#,JS,Java,SQL)的区别
			C#: substring(第一参数,第二参数)// 第一参数:从第几位开始截,初始是从0位开始 第二参数:截取几位 substring(参数) 如果传入参数为一个长整, 且大于等于0,则以这个 ... 
- [转]IIS 日志记录时间和实际时间 不一样
			今天偶然发现 2003 系统IIS 日志记录时间和实际时间总是差了8个小时,也就是慢了8个小时.苦苦找了半天才发现如下办法能解决 ,特发来分享下 解决1:如果 IIS日志记录默认使用的是W3C扩展日志 ... 
- 03-封装BeanUtil工具类(javabean转map和map转javabean对象)
			package com.oa.test; import java.beans.BeanInfo; import java.beans.IntrospectionException; import ja ... 
- Django多个中间件的执行顺序
			Django中的中间件是一个轻量级.底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出.中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健 ... 
- list按照某个元素进行排序
			import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.u ... 
- 李清华201772020113《面向对象程序设计(java)》第二周学习总结
			李清华201772020113<面向对象程序设计(java)>第二周学习总结 第一部分 理论知识 第三章 本章主要讲了java基本知识中的标识符,关键字,注释,以及数据类型,变量,运算符, ... 
- tesseract_vs2015工具包使用
			在vs中配置tesseract4.0: 新建一个空的控制台程序.并找到下图位置 双击.x64.user出现如下图: 单击VC++目录,将tesseract-2015/include/tesseract ... 
- leetcode1028
			class Solution(object): def __init__(self): self.List = list() def rdfs(self,S): if S != '': length ... 
- 触发full gc的条件
			1.调用System.gc 2.老年代空间不足 3.永生区空间不足 4.CMS GC时出现promotion failed和concurrent mode failure 5.统计得到的Minor G ... 
- asmx 接收数据过大 发生错误
			原文:https://www.cnblogs.com/xinaixia/p/5945316.html 错误:已超过传入消息(65536)的最大消息大小配额.若要增加配额,请使用相应绑定元素上的 Max ... 
