Thymeleaf视图
一:添加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视图相关推荐
- SpringBoot2.0系列(2)---SpringBoot之使用Thymeleaf视图模板
前言 Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利.如果你已经厌倦了JSP+J ...
- springmvc配置thymeleaf视图解析器
引入thymeleaf的依赖 <dependency><groupId>org.thymeleaf</groupId><artifactId>thyme ...
- 编写Thymeleaf视图以展示数据
实验结果 1.编写控制器 新建一个MVC模式的控制器"HelloWorldMvcController" package com.example.demo;import org.sp ...
- Spring Boot系列(三)、Spring Boot视图技术(Jsp、FreeMarker、Thymeleaf)
三.Spring Boot视图技术 3.1 Spring Boot常见的有三种视图整合 3.2 第一种视图整合jsp 1 pom.xml文件: 2 然后新建JSP视图的访问和存储目录webapp/WE ...
- JAVA入门[22]—thymeleaf
一.thymeleaf官网 官网:https://www.thymeleaf.org/index.html doc:https://www.thymeleaf.org/documentation.ht ...
- spring(6) 渲染web视图
[0]README 1)本文部分文字描述转自:"Spring In Action(中/英文版)",旨在review "spring(6) 渲染web视图" 的 ...
- Spring Boot和Thymeleaf:重新加载模板和静态资源,而无需重新启动应用程序
Thymeleaf是围绕自然模板的概念设计的,该模板允许进行静态原型制作:模板逻辑不会影响用作原型的模板. 尽管这是一项很棒的技术,但您可能还希望在运行的Spring Boot应用程序中查看结果,而不 ...
- Spring MVC和Thymeleaf:如何从模板访问数据
在典型的Spring MVC应用程序中, @Controller类负责使用数据准备模型映射并选择要呈现的视图. 该model map允许视图技术的完整抽象,对于Thymeleaf而言,它被转换为Thy ...
- Thymeleaf与Spring集成(第1部分)
1.引言 本文重点介绍如何将Thymeleaf与Spring框架集成. 这将使我们的MVC Web应用程序能够利用Thymeleaf HTML5模板引擎,而不会丢失任何Spring功能. 数据层使用S ...
最新文章
- scau 1079 三角形(暴力)
- Python实例--文本词频统计
- dw属性面板 的HTML,Dreamweaver中AP Div属性面板
- 自如蛋壳被指推高房租背后:爱公寓资金链断裂先例需警醒
- 初中参观机器人博物馆的作文_导览机器人为参观者带来更佳的观展体验
- IOS笔记 : addChildViewController
- c语言万年历自动翻页,C语言实现万年历效果
- 企业新站,如何建立外链,提高预期排名?
- 建房遮阳标准的计算机方法,农村建房遮阴计算标准,看看怎么计算?
- matlab小车运动轨迹增量式PID控制
- 未解Bug-邮箱字母莫名变成大写,导致修改密码时密码不一致
- il和idl区别_MinoxidilMax出品 Dualgen 15% Minoxil脫髮治療的用藥心得
- unity之环状图片轮播
- 虹科方案 | 制药环境中冰箱温度记录的最佳实践——全集成温度监测系统
- 2021-06-22第十章主讲
- 常用的http状态码 状态码大全 常见的状态码
- 好用的不行不行!超级炫酷的键盘最应该留给最般配的猿们!
- android开发(43) 动画演示,会跑的小人,从屏幕左侧跑到右侧
- 小型元器件介绍:瓷片电容
- 2010年4月51CTO壁纸点评活动获奖公告
热门文章
- 前端学习(780):日期对象
- git学习(8):windows系统下VI编辑器的基本使用
- Python reload() 函数
- 树莓派SSH 连接不上:socket error Event:32 Error:10053
- [GAN学习系列3]采用深度学习和 TensorFlow 实现图片修复(中)
- 猜数字游戏python程序_python经典小程序:猜数字游戏
- appium学习记录1
- 【BZOJ1048】分割矩阵(记忆化搜索,动态规划)
- volatile理解了吗?
- 4种kill某个用户所有进程的方法