码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC 学习 十一 springMVC控制器向jsp或者别的控制器传递参数的四种方法

时间:2018-10-20 22:12:33      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:session   string   ajax   ssi   setattr   charset   参数传递   传递参数   通过   

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

标签:session   string   ajax   ssi   setattr   charset   参数传递   传递参数   通过   

原文地址:https://www.cnblogs.com/cplinux/p/9822711.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!