当前位置: 首页 > news >正文

springMVC中视图机制简述

在Spring MVC中,视图机制的核心流程如下(以Thymeleaf和JSP为例):

Thymeleaf作为视图时的流程

  1. 浏览器发送请求到Web服务器。

  2. DispatcherServlet接收请求,并根据请求路径分发到对应的Controller

  3. Controller处理业务逻辑,返回一个逻辑视图名(如"home")。

  4. ThymeleafViewResolver解析逻辑视图名:

    • 根据配置(如前缀classpath:/templates/和后缀.html),将逻辑视图名转换为物理路径(如/templates/home.html)。

    • 创建ThymeleafView对象并返回。

  5. ThymeleafViewrender()方法执行:

    • 将模板(如home.html)与模型数据结合,生成HTML。

    • HTML响应返回浏览器完成渲染。


JSP作为视图时的流程

  1. 浏览器发送请求到Web服务器。

  2. DispatcherServlet接收请求,并根据请求路径分发到对应的Controller

  3. Controller处理业务逻辑,返回一个逻辑视图名(如"home")。

  4. InternalResourceViewResolver解析逻辑视图名:

    • 根据配置(如前缀/WEB-INF/views/和后缀.jsp),将逻辑视图名转换为物理路径(如/WEB-INF/views/home.jsp)。

    • 创建InternalResourceView对象并返回。

  5. InternalResourceViewrender()方法执行:

    • 将请求转发给JSP文件(如home.jsp),由Servlet容器(如Tomcat)编译JSP为Servlet,生成HTML。

    • HTML响应返回浏览器完成渲染。


关键区别

组件ThymeleafJSP
视图解析器ThymeleafViewResolverInternalResourceViewResolver
视图实现类ThymeleafViewInternalResourceView
渲染方式模板引擎直接生成HTML请求转发到JSP,由Servlet容器处理
配置示例前缀:classpath:/templates/,后缀:.html前缀:/WEB-INF/views/,后缀:.jsp
依赖需要Thymeleaf库依赖Servlet容器(如Tomcat)

两种技术均通过逻辑视图名→物理视图名→渲染的流程实现视图解析,但底层实现依赖不同的组件和机制。

http://www.dtcms.com/a/89451.html

相关文章:

  • Win10批处理脚本操作注册表教程
  • 机器学习——LightGBM
  • 国民技术芯片 读保护功能设置、取消
  • 腾讯云智面试1.0
  • 【MySQL报错】:Column count doesn’t match value count at row 1
  • Reactor/Epoll为什么可以高性能?
  • LeetCode(977):有序数组的平方
  • 图片类型转换
  • 使用 Python包管理工具 uv 完成 Open WebUI 的安装
  • 【Ubuntu设备端口绑定】
  • 电机控制常见面面试问题(十九)
  • 单链表结点删除
  • PostgreSQL:索引与查询优化
  • 蓝桥杯 整数变换
  • 深入理解 Git Stash:功能、用法与实战示例
  • 第一次程序Hello Python
  • 【数据结构】C语言实现树和森林的遍历
  • WPF x:Static与StaticResource
  • 基于 Hydrus 软件的土壤水、热、盐及污染物迁移模型与案例分析
  • [图形学]在半球面上按照微表面模型采样
  • 《深入探索 C++对象模型》-- 对象实例直接访问成员 VS 通过指针或引用访问成员 P99扩展解释
  • 科技赋能|ZGIS综合管网智能管理平台守护地下城市生命线
  • Nginx目录结构
  • Mininet--moduledeps.py源码解析
  • 为何服务器监听异常?
  • Next Route Handlers的使用
  • 树莓派开发(一):烧录系统,设置SSH远程登录,用摄像头拍照
  • Nginx反向代理及负载均衡
  • 精选10个好用的WordPress免费主题
  • 代码随想录第55期训练营第十一天|LeetCode150.逆波兰表达式求值、239.滑动窗口最大值、347.前K个高频元素