SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
Posted 阿瞒123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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或者别的控制器传递参数的四种方法的主要内容,如果未能解决你的问题,请参考以下文章
SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法
spring,springmv,springboot解决跨域问题