概述:Thymeleaf 是一个 Java 库。它是一个 XML/XHTML/HTML5 模板引擎,能够将一组转换应用于模板文件,以显示应用程序生成的数据和/或文本。
Thymeleaf 的主要目标是提供一种优雅且格式良好的模板创建方式。为了实现这一点,它基于定义在DOM(文档对象模型)上执行预定义逻辑的 XML 标记和属性,而不是将该逻辑显式编写为模板内的代码。
Thymeleaf 的架构允许快速处理模板,依赖于解析文件的智能缓存,以便在执行期间使用尽可能少的 I/O *** 作。
Thymeleaf 可以处理的模板- XML
- 有效的 XML
- XHTML
- 有效的 XHTML
- HTML5(主要)
Thymeleaf 的核心是一个 DOM 处理引擎。具体来说,它使用自己的高性能 DOM 实现——而不是标准的 DOM API——来构建模板的内存树表示,然后它通过遍历它们的节点并在它们上执行处理器来 *** 作,这些处理器根据当前配置和传递给模板用于其表示的数据集 — 称为上下文。
简单创建- 创建模板引擎对象
- 创建解析对象
- 关联解析器对象到引擎对象上
- 提供给引擎模板本次解析的上下文对象
- 准备好要放入的 Context 对象
- 通过模板引擎生成最终的正文内容
- 填充响应内容
@WebServlet("/template-demo") public class TemplateDemoServlet extends HttpServlet { private static final long serialVersionUID = -8576662234303281900L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 1. 创建模板引擎对象 TemplateEngine engine = new TemplateEngine(); // 2. 创建解析器对象 ServletContext servletContext = req.getServletContext(); ServletContextTemplateResolver resolver = new ServletContextTemplateResolver(servletContext); resolver.setTemplateMode(TemplateMode.HTML); resolver.setCharacterEncoding("utf-8"); resolver.setPrefix("/WEB-INF/templates/"); resolver.setSuffix(".html"); resolver.setCacheable(false); // 3. 关联解析器对象到引擎对象上 engine.setTemplateResolver(resolver); // 4. 提供给模板引擎本次解析的上下文对象 WebContext webContext = new WebContext(req, resp, servletContext); // 5. 准备好要放入 Context 的数据 ListcourseList = getCourseList(); webContext.setVariable("courseList", courseList); // 6. 通过模板引擎生成最终的正文内容 String responseBody = engine.process("course-list", webContext); // 7. 填充响应对象 resp.setCharacterEncoding("utf-8"); resp.setContentType("text/html"); resp.getWriter().println(responseBody); } private List getCourseList() { return Arrays.asList("JavaSE", "JavaDS", "JavaDB", "JavaWeb", "JavaTest", "JavaEE"); } }
准备的模板示例:
课程列表 Java 方向的课程列表
展示结果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)