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高级参数绑定的学习,本文所有案例代码的编 ...
随机推荐
- 源码:Java集合源码之:数组与链表(一)
数组和链表是数据结构中最基本的部分. 数组 在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据.那么这种结构的数据,在内存中是怎么存放的呢? 数组在内存中是一段连续的存储单元,每 ...
- leetcode14:最长公共字符串
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- 【练习】@property练习题
请利用@property给一个Screen对象加上width和height属性,以及一个只读属性resolution: 写了一段代码 class Screen(object): #利用property ...
- py目录
Python开发[第二篇]:初识Python Python开发[第三篇]:Python基本数据类型 Python开发[第四篇]:Python基础之函数 &&[4.1]算法递归 冒泡 ...
- hive 表锁和解锁
场景: 在执行insert into或insert overwrite任务时,中途手动将程序停掉,会出现卡死情况(无法提交MapReduce),只能执行查询操作,而drop insert操作均不可操作 ...
- Android单元测试学习(一)
什么是单元测试 首先总结一下什么是单元测试,单元测试中的单元在Android或Java中可以理解为某个类中的某一个方法,因此单元测试就是针对Android或Java中某个类中的某一个方法中的逻辑代码进 ...
- python class的创建
def f(): class a(): a=5 def f2(): pass Disassembly of f: 14 0 LOAD_CONST 1 ('a') 3 LOAD_CONST 3 (()) ...
- leetcode148
class Solution { public: ListNode* sortList(ListNode* head) { multimap<int,ListNode*> mul; whi ...
- codeforces 1041A Heist
electronic a.电子的 heist v.抢劫 in ascending order 升序 indice n.标记 device n.装置设备 staff n.职员 in arbitrary ...
- Fiddler使用
1.下载安装 百度下载后,傻瓜式安装. 2.设置 Tools->options->https->选中"Decrpt HTTPS traffic"(Fiddler就 ...