在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>
展示效果,如下图: