• SpringMVC之请求响应(上)


    1.OutPutController

    package com.tz.controller;
    
    import java.util.Map;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.ui.Model;
    import org.springframework.ui.ModelMap;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
    
    @Controller
    @RequestMapping("/output")
    public class OutPutController {
    	
    	/**
    	 * springmvc除了用servlet的session和request之外还能怎样把数据放哪进行转储
    	 * 
    	 * 1.可以在方法参数的位置上传入Map,model,ModelMap三种类型的任意一种参数
    	 * ,往对象中保存数据,都会放到域对象(request)中,可以从页面获取
    	 * BindingAwareModelMap
    	 * 
    	 * Map,model,ModelMap,最终都是BindingAwareModelMap再操作,相当于BindingAwareModelMap中,
    	 * 保存的数据都会被放在request的域对象中
    	 * 
    	 * Map<jdk> Model<spring> ModelMap<spring>
    	 * 								|
    	 * 都实现map接口
    	 * 
    	 * 
    	 * 2.springmvc支持把方法的返回值类型设置ModelAndView类型
    	 * 
    	 * @return
    	 */
    	
    	@RequestMapping("/handle01")
    	public String handle01(Map<String,Object> map){
    		map.put("msg","你好");//map会存在request域对象中
    		System.out.println("map的类型:"+map.getClass());
    		return "success";
    	}
    	
    	@RequestMapping("/handle02")
    	public String handle02(Model model){
    		model.addAttribute("msg","你吃饭了吗");
    		System.out.println(model.getClass());
    		return "success";
    	}
    	
    	@RequestMapping("/handle03")
    	public String handle03(ModelMap modelMap){
    		modelMap.addAttribute("msg","ModelMap");
    		System.out.println(modelMap.getClass());
    		return "success";
    	}
    	
    	/**
    	 * ModelAndView:既包含视图信息(页面地址),也包含模型数据(给页面带的数据)
    	 * 而且最终数据也是存在request域对象中
    	 * @return
    	 */
    	
    	@RequestMapping("/handle04")
    	public ModelAndView handle04(){
    		//构造方法传入jsp名字,springmvc中的视图解析器会帮助我们进行拼接字符串得到页面的真实地址
    //		ModelAndView view = new ModelAndView("success");//第一种设置视图的方法
    		ModelAndView view = new ModelAndView();//第二种设置视图的方法
    		view.setViewName("success");
    		//保存数据
    		view.addObject("msg","awslDnmd");//保存在request域名里去
    		return view;
    	}
    }
    

      2.output.jsp

    <%@ 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>
    
    	<a href="output/handle01">outPut1</a><br/>
    	<a href="output/handle02">outPut2</a><br/>
    	<a href="output/handle03">outPut3</a><br/>
    	<a href="output/handle04">outPut4ModelAndView</a><br/>
    	
    </body>
    </html>
    

      3.success.jsp

    <%@ 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=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    
    <h1>success</h1>
    
    <%-- 	request:${requestScope.request}<br/>
    	session:${sessionScope.session} --%>
    	
    pageContext:${pageScope.msg}<br/>
    request:${requestScope.msg}<br/>
    session:${sessionScope.msg}<br/>
    application:${applicationScope.msg}<br/>
    
    </body>
    </html>
    

      总结:

    为啥model,modelMap,modelAndView数据都存在request域对象中?

     2.为啥能够访问success.jsp

  • 相关阅读:
    (十一)MySQL语法-外连接
    公司框架-微服务-代码修改
    公司框架-微服务-从前端找到后端
    (十)mysql语法-连接查询
    (九)mysql语法-分组函数和多表连接查询
    安装最新版navicat的时候报 rsa public key not find
    【理想流】程序员的性格和命运 . 分类: 项目管理 2014-06-14 14:56 221人阅读 评论(0) 收藏
    项目经理修炼之道(2) -- 必须读的书 . 分类: 项目管理 2014-06-14 14:54 265人阅读 评论(0) 收藏
    项目经理修炼之道(1) -- 给软件开发建模 . 分类: 项目管理 2014-06-14 14:53 264人阅读 评论(0) 收藏
    【理想流】项目管理本质论 . 分类: 项目管理 2014-06-14 14:51 183人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/luyuan-chen/p/11690972.html
Copyright © 2020-2023  润新知