以后的开发,大部分是发送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或者别的控制器传递参数的四种方法的更多相关文章

  1. jsp传递参数的四种方法

    1.form表单 2.request.setAttribute();和request.getAttribute(); 3.超链接:<a herf="index.jsp"?a= ...

  2. JSP页面间传递参数的5种方法

    JSP页面间传递参数是经常需要使用到的功能,有时还需要多个JSP页面间传递参数.下面介绍一下实现的方法. (1)直接在URL请求后添加 如:< a href="thexuan.jsp? ...

  3. SpringMVC学习(十一)——SpringMVC实现Resultful服务

    http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ...

  4. (转)SpringMVC学习(十一)——SpringMVC实现Resultful服务

    http://blog.csdn.net/yerenyuan_pku/article/details/72514034 Restful就是一个资源定位及资源操作的风格,不是标准也不是协议,只是一种风格 ...

  5. JSP向后台传递参数的四种方式

    Jsp页面传值的方法 一.通过Form表单提交传值 客户端通过Form表单提交到服务器端,服务器端通过 Java代码 request.getParameter(String xx); 来取得参数(xx ...

  6. jnhs-SpringMVC jsp页面向controller传递参数的五种方式

    一共是五种传参方式: 一:直接将请求参数名作为Controller中方法的形参 public  String login (String username,String password)   : 解 ...

  7. (转)SpringMVC学习(三)——SpringMVC的配置文件

    http://blog.csdn.net/yerenyuan_pku/article/details/72231527 读者阅读过SpringMVC学习(一)——SpringMVC介绍与入门这篇文章后 ...

  8. (转)SpringMVC学习(一)——SpringMVC介绍与入门

    http://blog.csdn.net/yerenyuan_pku/article/details/72231272 SpringMVC介绍 SpringMVC是什么? SpringMVC和Stru ...

  9. (转)SpringMVC学习(六)——SpringMVC高级参数绑定与@RequestMapping注解

    http://blog.csdn.net/yerenyuan_pku/article/details/72511749 高级参数绑定 现在进入SpringMVC高级参数绑定的学习,本文所有案例代码的编 ...

随机推荐

  1. centos7-软件安装-mysql5.7

    mysql5.7新增特点: 最新版本的mysql5.7相比较于mysql5.6,新添加了一个特点:允许日期类型字段添加数值精确到毫秒位数,比如`create_date` datetime(3) DEF ...

  2. Linux(CentOS-7) 下载 解压 安装 redis 操作的一些基本命令

    使用xshell 连接到虚拟机,并且创建 一个redis目录:创建文件命令:mkdir 文件名ls:查看当前文件里面的所有文件 使用xftp 将下载的linux版本 reids上传动新建的redis目 ...

  3. JS购物车编辑

    实现了:第一件商品的加减实现了:全选/全不选(使用prop而不是attr)实现了:删除(遮罩层) 未实现:第二件商品的删除未实现:小计及应付款额的初始化(写死的) 计算小数乘法时,要先乘100 < ...

  4. jquery如何实现当页面下拉到一定位置时,右下角出现回到顶部图标

    渐进式返回顶部

  5. PHP响应码和HTTP请求方法

    HTTP请求报文由请求行(request line).请求头部(header).空行和请求数据4个部分组成,格式如下 可见请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格 ...

  6. leetcode347

    public class Solution { public IList<int> TopKFrequent(int[] nums, int k) { var dic = new Dict ...

  7. django 数据库查询的几个知识点

    django查询db过程中遇到的几个问题: 1. 数据库切换,用using products = models.TProductCredit.objects.using(') 2.查询结构集是Quer ...

  8. 子类中加virtual 有用没?多重继承的机制 还需要再探!

    class D:public C{ public: D(){cout << "D()" << endl;} virtual ~D(){ cout <& ...

  9. Java中的反射总结

    反射是获取运行时类信息,即常量区中的Class信息. 要获取类信息,必然需要依据,不然系统怎么指定你要获取那个类信息, 类信息在java中就是Class类的一个对象,它是一个java类抽象,换句话说它 ...

  10. 电商项目中使用Redis实现秒杀功能

    参与过抢购活动就知道,很明显的一点是商即便商品实际没有了也是可以下单成功的,但是在支付的时候会提示你商品没有了. 实现原理:list双向链表 使用redis队列,因为pop操作是原子的,即使有很多用户 ...