设为首页 加入收藏

TOP

day03-模型数据(二)
2023-07-26 08:17:02 】 浏览:72
Tags:day03-
e06") public String test06(Master master, Map<String, Object> map) { //需求是通过map对象,添加属性到request域中 map.put("address", "tianjin"); //原理分析:springmvc会遍历map,将map中的k-v存放到request域中 //因此你会发现在转发页面中,直接通过${requestScope.address}也可以获取address的数据 return "vote_ok"; }

model_data.jsp不变

vote_ok.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>vote_ok</title>
</head>
<body>
<h1>取出request域中的信息</h1>
主人的address=${requestScope.address}
主人的id=${requestScope.master.id}
主人的名字=${requestScope.master.name}
宠物的id=${requestScope.master.pet.id}
宠物的名字=${requestScope.master.pet.name}
</body>
</html>

model_data.jsp:

image-20230206191844823

vote_ok.jsp:

image-20230206191849974

注意事项:

  1. 我们知道,表单提交的数据会被springmvc自动封装成对象,并放入request域中。而且springmvc会扫描map,将里面的k-v也放到request域中。

  2. 这意味着,如果map的中某个key和之前自动封装的对象同名,那么在springmvc扫描map的时候,原先的request的对象的属性值会被map中同名key的value值覆盖

1.3方式3-通过返回ModelAndView对象实现request域数据

  1. 表单数据被springmvc封装到master对象
  2. master对象被springmvc封装到request域中
  3. ModelAndView的属性也会被springmvc放入到request域中
  4. 因此转发的页面中可以通过request域获取到所有数据

修改 VoteHandler.java

//演示通过返回ModelAndView对象,将数据放入到request域中
@RequestMapping(value = "/vote07")
public ModelAndView test07(Master master) {
    ModelAndView modelAndView = new ModelAndView();
    //放入属性到 ModelAndView对象
    modelAndView.addObject("address", "shanghai~~");
    //指定要跳转的视图名称
    modelAndView.setViewName("vote_ok");
    return modelAndView;
}

model_data.jsp不变

vote_ok.jsp:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>vote_ok</title>
</head>
<body>
<h1>取出request域中的信息</h1>
主人的address=${requestScope.address}
主人的id=${requestScope.master.id}
主人的名字=${requestScope.master.name}
宠物的id=${requestScope.master.pet.id}
宠物的名字=${requestScope.master.pet.name}
</body>
</html>

model_data.jsp:

image-20230206200644063

vote_ok.jsp:可以看到在ModelAndView中的数据已经被放入到了request对象中,因此可以直接获取

image-20230206200724038

注意事项:

  1. 从本质上看,请求响应的方return "xxx",只是返回了一个字符串,其实本质上底层是返回了一个ModelAndView 对象,只是默认被封装起来了。

  2. ModelAndView 既可以包含 model 数据,也可以包含视图信息。

  3. ModelAndView 对象的 addObject 方法可以添加key-val数据,添加的数据默认被 springmvc 扫描放在request域中。

  4. ModelAndView 对象的 setView 方法可以指定视图名称。

  5. 这里ModelAndView 被 springmvc 扫描,将属性放入request域中的操作,和之前map被springmvc扫描非常相似。同样的,ModelAndView中的属性被放入request域中时,如果request域中已经有同名属性了,那么将会进行覆盖操作。

2.数据放入session

  • 说明:开发中,控制器/处理器中获取的数据如何放入session域,然后在前端(vue/jsp/...)取出显示?

应用实例

仍然以之前的例子说明:

image-20230206181733509 image-20230206202910589
  1. model_date.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>model_data</title>
    </head>
    <body>
    <h1>添加信息[测试session]</h1>
    <form action="vote/vote08" method="post">
      主人id:<input type="text" name="id"/><br/>
      主人名:<input type="text" name="name"/><br/>
      宠物id:<input type="text" name="pet.id"/><br/>
      宠物名:<input type="text&quo
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【学习笔记】Http请求方法总结 下一篇JAVA中如何判断一个ResultSet结果..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目