在java领域,视图层技术都有html、jsp、freemarker、velocity、thymeleaf等。
HTML:超文本标记语言(Hyper Text Markup Language),标准通用标记语言下的一个应用。HTML 不是一种编程语言,而是一种标记语言 (markup language),是网页制作所必备的。
JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能。JSTL支持通用的、结构化的任务,比如迭代,条件判断,XML文档操作,国际化标签,SQL标签。 除了这些,它还提供了一个框架来使用集成JSTL的自定义标签。JSP性能良好,但由于可以编写java代码,如使用不当容易破坏mvc结构。
参考:https://blog.csdn.net/u013199013/article/details/83537809
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。
Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅使用简单的模板语言(template language)来引用由java代码定义的对象。
Thymeleaf 是 Web 和独立环境的现代服务器端 Java 模板引擎,能够处理HTML,XML,JavaScript,CSS 甚至纯文本。它
的主要目标是提供一种优雅和高度可维护的创建模板的方式。
推荐使用Thymeleaf 的主要原因是:HTML的显示优势,前后端可以很好的分离。
Thymeleaf 的使用:
1、引入thymeleaf模板引擎的引入
<!-- 引入thymeleaf模板引擎 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency>2、HelloController.java
@RequestMapping("/success") public String success(Map<String, Object> map){ map.put("hello", "<h1>你好啊!</h1>"); map.put("users", Arrays.asList("Jalor","Jackie Chan", "Jet Li")); return "success"; }3、success.html
<!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>success</h1> <div id="id" class="myclass" th:id="${hello}" th:class="${hello}" th:text="${hello}">用thymleaf模板引擎,这部分内容将被覆盖。</div> <hr/> <div th:text="${hello}"></div> <div th:utext="${hello}"></div> <hr/> <h4 th:text="${user}" th:each="user:${users}"></h4> <hr/> <h4> <span th:each="user:${users}"> [[user]] </span> </h4> </body> </html>展示效果,如下图: