一:添加thymeleaf.jar包

二:新建一个Servlet类的ViewBaseServlet

package myssm.mySpringMVC;import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.WebContext;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class ViewBaseServlet extends HttpServlet {private TemplateEngine templateEngine;@Overridepublic void init() throws ServletException {// 1.获取ServletContext对象ServletContext servletContext = this.getServletContext();// 2.创建Thymeleaf解析器对象ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext);// 3.给解析器对象设置参数// ①HTML是默认模式,明确设置是为了代码更容易理解templateResolver.setTemplateMode(TemplateMode.HTML);// ②设置前缀String viewPrefix = servletContext.getInitParameter("view-prefix");templateResolver.setPrefix(viewPrefix);// ③设置后缀String viewSuffix = servletContext.getInitParameter("view-suffix");templateResolver.setSuffix(viewSuffix);// ④设置缓存过期时间(毫秒)templateResolver.setCacheTTLMs(60000L);// ⑤设置是否缓存templateResolver.setCacheable(true);// ⑥设置服务器端编码方式templateResolver.setCharacterEncoding("utf-8");// 4.创建模板引擎对象templateEngine = new TemplateEngine();// 5.给模板引擎对象设置模板解析器templateEngine.setTemplateResolver(templateResolver);}//可以帮助我们完成资源的转发并且对数据进行渲染protected void processTemplate(String templateName, HttpServletRequest req, HttpServletResponse resp) throws IOException {// 1.设置响应体内容类型和字符集resp.setContentType("text/html;charset=UTF-8");// 2.创建WebContext对象WebContext webContext = new WebContext(req, resp, getServletContext());// 3.处理模板数据templateEngine.process(templateName, webContext, resp.getWriter());}
}

三:在web.xml中添加配置

prefix前缀、suffix后缀

<context-param><param-name>view-prefix</param-name><param-value>/</param-value></context-param><context-param><param-name>view-suffix</param-name><param-value>.html</param-value></context-param>

四:servlet继承ViewBaseServlet

启动处(super.process)

public class IndexServlet extends ViewBaseServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {FruitDAO fruitDAO = new FruitDAOImpl();List<Fruit> fruitList = fruitDAO.getFruitList();//保存到session作用域HttpSession session = req.getSession();session.setAttribute("fruitList",fruitList);//template:index 视图名称//thymeleaf会将这个逻辑视图名称对应到物理视图名称上//逻辑视图名称:index//物理视图名称:view-prefix+逻辑视图名称+view-suffix//真实的视图名称:     /      index     .htmlsuper.processTemplate("index",req,resp);}

五:根据逻辑视图名称和物理视图名称得到真实的视图名称

 //template:index 视图名称//thymeleaf会将这个逻辑视图名称对应到物理视图名称上//逻辑视图名称:index//物理视图名称:view-prefix+逻辑视图名称+view-suffix//真实的视图名称:     /      index     .html

<tr th:if="${#lists.isEmpty(session.fruitList)}"><td colspan="4">对不起,库存为空!</td></tr><tr   th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit : ${session.fruitList}"><td th:text="${fruit.fname}">苹果</td><td th:text="${fruit.price}">5</td><td th:text="${fruit.fcount}">20</td><td><img src="imgs/del.jpg" class="delImg"/></td></tr>

Thymeleaf视图相关推荐

  1. SpringBoot2.0系列(2)---SpringBoot之使用Thymeleaf视图模板

    前言 Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利.如果你已经厌倦了JSP+J ...

  2. springmvc配置thymeleaf视图解析器

    引入thymeleaf的依赖 <dependency><groupId>org.thymeleaf</groupId><artifactId>thyme ...

  3. 编写Thymeleaf视图以展示数据

    实验结果 1.编写控制器 新建一个MVC模式的控制器"HelloWorldMvcController" package com.example.demo;import org.sp ...

  4. Spring Boot系列(三)、Spring Boot视图技术(Jsp、FreeMarker、Thymeleaf)

    三.Spring Boot视图技术 3.1 Spring Boot常见的有三种视图整合 3.2 第一种视图整合jsp 1 pom.xml文件: 2 然后新建JSP视图的访问和存储目录webapp/WE ...

  5. JAVA入门[22]—thymeleaf

    一.thymeleaf官网 官网:https://www.thymeleaf.org/index.html doc:https://www.thymeleaf.org/documentation.ht ...

  6. spring(6) 渲染web视图

    [0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review  "spring(6) 渲染web视图" 的 ...

  7. Spring Boot和Thymeleaf:重新加载模板和静态资源,而无需重新启动应用程序

    Thymeleaf是围绕自然模板的概念设计的,该模板允许进行静态原型制作:模板逻辑不会影响用作原型的模板. 尽管这是一项很棒的技术,但您可能还希望在运行的Spring Boot应用程序中查看结果,而不 ...

  8. Spring MVC和Thymeleaf:如何从模板访问数据

    在典型的Spring MVC应用程序中, @Controller类负责使用数据准备模型映射并选择要呈现的视图. 该model map允许视图技术的完整抽象,对于Thymeleaf而言,它被转换为Thy ...

  9. Thymeleaf与Spring集成(第1部分)

    1.引言 本文重点介绍如何将Thymeleaf与Spring框架集成. 这将使我们的MVC Web应用程序能够利用Thymeleaf HTML5模板引擎,而不会丢失任何Spring功能. 数据层使用S ...

最新文章

  1. scau 1079 三角形(暴力)
  2. Python实例--文本词频统计
  3. dw属性面板 的HTML,Dreamweaver中AP Div属性面板
  4. 自如蛋壳被指推高房租背后:爱公寓资金链断裂先例需警醒
  5. 初中参观机器人博物馆的作文_导览机器人为参观者带来更佳的观展体验
  6. IOS笔记 : addChildViewController
  7. c语言万年历自动翻页,C语言实现万年历效果
  8. 企业新站,如何建立外链,提高预期排名?
  9. 建房遮阳标准的计算机方法,农村建房遮阴计算标准,看看怎么计算?
  10. matlab小车运动轨迹增量式PID控制
  11. 未解Bug-邮箱字母莫名变成大写,导致修改密码时密码不一致
  12. il和idl区别_MinoxidilMax出品 Dualgen 15% Minoxil脫髮治療的用藥心得
  13. unity之环状图片轮播
  14. 虹科方案 | 制药环境中冰箱温度记录的最佳实践——全集成温度监测系统
  15. 2021-06-22第十章主讲
  16. 常用的http状态码 状态码大全 常见的状态码
  17. 好用的不行不行!超级炫酷的键盘最应该留给最般配的猿们!
  18. android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧
  19. 小型元器件介绍:瓷片电容
  20. 2010年4月51CTO壁纸点评活动获奖公告

热门文章

  1. 前端学习(780):日期对象
  2. git学习(8):windows系统下VI编辑器的基本使用
  3. Python reload() 函数
  4. 树莓派SSH 连接不上:socket error Event:32 Error:10053
  5. [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(中)
  6. 猜数字游戏python程序_python经典小程序:猜数字游戏
  7. appium学习记录1
  8. 【BZOJ1048】分割矩阵(记忆化搜索,动态规划)
  9. volatile理解了吗?
  10. 4种kill某个用户所有进程的方法