spring mvc 中 modelAndView 的一些理解和使用

spring mvc

  • Spring mvc 是 Spring Framework 里提供的一个模块,是对 mvc 架构的实现
  • Spring mvc 指 Spring web mvc
  • 它规范了 web 的开发以及对 servlet 做封装,还有提供了其他的一些封装,这里只探究 modelAndView

HttpServletRequest

  • HttpServletRequest 表示一个 HTTP 请求,它包含了客户端发送到服务器的请求信息,如请求参数、请求头、会话数据等。当通过 HTTP 协议访问服务器时,会把 HTTP 请求封装为 HttpServletRequest 类型的对象。HttpServletRequest 对象由 Servlet 容器负责创建和管理,它在整个请求处理过程中都存在,直到请求结束。

modelAndView

  • modelAndView 是一个类,可以封装为 Controller 控制器方法的返回值。
  • 它包含了视图名属性(View Name)和模型数据属性(Model Data)两部分,用来指定视图要渲染的视图以及要传输到视图的数据。
  • 在Controller 控制器使用 modelAndView 需要 new 一个 modelAndView 对象
    • 对象里的 Model Data (数据模型)部分是一个map,在控制器中可以添加数据,注意 key 不能重复
    • 对象里的 View Name (视图模型)部分存储视图的名字,通过配置文件可以找到具体的视图文件
  • 控制器处理完并返回 modelAndView 对象之后,Spring mvc 就会解析该对象。
  • 解析 modelAndView 对象大致步骤如下:
    • 根据 ModelAndView 中的视图名称查找适当的视图模板
    • 通过视图解析和渲染机制将 model 传递给视图引擎
    • 视图引擎将数据与试图结合
    • 渲染视图
  • 视图渲染完成就会响应给客户端
  • 简而言之,服务器接收到请求后,会调用控制器进行处理,如果控制器最终返回的是 ModelAndView,Spring MVC就会经常解析。把 ModelAndView 中的数据与指定的视图结合渲染,然后返回页面
  • 下面是对 modelAndView 操作的一些方法
    • 指定 ModelAndView 的页面
//在 new ModelAndView 对象时指定
ModelAndView view = new ModelAndView("product");
//使用方法指定
modelAndView.setViewName("product");

通过key-value的方式绑定数据

modelAndView.addObject(String attributeName, Object attributeValue);

在页面中使用 thymeleaf 模板引擎来访问 ModelAndView 中的数据,这又是一个很大的部分
新手上路,如有错误欢迎指正

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值