1.1 Thymeleaf是什么

Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML,XML,JavaScript,CSS甚至纯文本。

1.2 Thymeleaf能处理哪些模版

开箱即用,Thymeleaf可让处理六种类型的模板,每种类型的模板称为模板模式:

  • HTMl
  • XML
  • TEXT
  • JAVASCRIPT
  • CSS
  • RAW

也不做太多介绍不会就去看看官方文档,这里我只用了HTML
HTML模板模式将允许任何类型的HTML输入,包括HTML5,HTML 4和XHTML。Thymeleaf在html5非验证模式和验证模式下都能正确执行,并且在输出结果中最大程度的遵循模板代码/结构。

1.3 HTML怎么应用Thymeleaf

创建一个maven项目导入springboot的子项目:

    <!-- springboot依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version></parent>

然后导入Thymeleaf和web依赖包:

     <!-- Web模块:spring-boot-starter-web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- thymeleaf依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>

关于使用springboot的thymeleaf模板时默认会对HTML进行严格的检查,导致当标签没有闭合时就会通不过。nekohtml这个依赖可以解决这一问题。

修改pom文件,添加依赖
<!-- nekohtml依赖 -->
<dependency><groupId>nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.6.2</version>
</dependency>
修改配置yml
spring:thymeleaf:cache: false #是否启用模板缓存  开发环境不用所以使用false 默认为truemode: LEGACYHTML5 #回避HTML进行严格的检查的配置,需要提前引入nekohtml依赖prefix: classpath:/public/  #在构建URL时添加前缀以查看名称的前缀  ,放网页的地方
server: port: 8888

---------------------------------------------------------------------------------- 万恶的分割线-----------------------------------------------------------------------------------

前面算入坑指南~~~~这些都是简单配置和上一篇连接起来的运用如下:

上一篇

模型:

pom依赖:

    <!--Maven默认依赖 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.10.RELEASE</version></parent><dependencies><!-- Web依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- solr依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-solr</artifactId></dependency><!-- 小辣椒依赖 --><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><scope>provided</scope></dependency><!-- thymeleaf依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency><!-- 使用springboot的thymeleaf模板时默认会对HTML进行严格的检查,导致当你的标签没有闭合时就会通不过。nekohtml这个依赖可以解决这一问题。 --><dependency><groupId>nekohtml</groupId><artifactId>nekohtml</artifactId><version>1.9.6.2</version></dependency><!-- 开发者工具集 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><optional>true</optional></dependency></dependencies>

控制层:

package cn.lp.controller;import java.util.HashMap;
import java.util.List;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;import cn.lp.dao.PersonDao;
import cn.lp.entity.Person;
import cn.lp.entity.User;
/*** Model可直接传输数据,HttpServletRequest还需转接session会话控制接收* @author Administrator**/
@Controller
public class ThyController {@GetMapping("/getIndex")public String getIndex(Model model,HttpServletRequest request) {Map map=new HashMap();map.put("id", 1);map.put("name", "刘皇叔");model.addAttribute("user",map);User user=new User();user.setUserId("520");user.setUserName("跳跳糖");request.getSession().setAttribute("user1",user);return "index";}@Autowiredprivate PersonDao pd;@GetMapping("/getposolr")public String findByDescx(String descx,Model model) {List<Person> personList = pd.findByDesc(descx);model.addAttribute("personList",personList);return "posolr";}
}

数据访问层dao

package cn.lp.dao;import java.util.List;import org.springframework.data.solr.repository.SolrCrudRepository;import cn.lp.entity.Person;public interface PersonDao extends SolrCrudRepository<Person, String> {public List<Person> findByDesc(String keyword);}

实体层entity 俩个一个是简单运用 一个是调用solr完成一个表格

package cn.lp.entity;import org.apache.solr.client.solrj.beans.Field;
import org.springframework.data.solr.core.mapping.SolrDocument;import lombok.Data;
/*** @Field指定core里的参数* @SolrDocument(solrCoreName="mycore")指定core(核)* @author Administrator*  我只把后缀为_ik的做了分词*/
@Data
@SolrDocument(solrCoreName="mycore")
public class Person {private String id;@Field("country_ik")private String  country;@Field("name_ik")private String name;@Field("desc_ik")private String desc;@Field("provice_ik")private String provice;@Field("city_ik")private String city;@Field("age_i")private String age;
}
package cn.lp.entity;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;@Data//get,set方法
@NoArgsConstructor//无参的构造方法
@AllArgsConstructor//带参的构造方法
@ToString//toString方法
public class User {private String  userId;private String userName;}

main方法

package cn.lp;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class ThyMain {//thymeleaf是从控制层经过,扫描html页面是否有th:标签,含有的话就使用thymeleaf的方法并顶替里面原始的值public static void main(String[] args) {SpringApplication.run(ThyMain.class, args);       }
}

index.html页面 简单运用方法的页面

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>${sec}<input name="usesName" th:name="${sex}"/><!--  th:text会转译所以得出的值是一个字符串th:utext不转译,得出的值是一串html标签 --><div th:text="'<button>天天路过</button>'">摇摇晃晃    </div><div th:utext="'<button>天天路过</button>'">摇头晃脑</div><!-- 可以从控制层中获取到参数使用会话属性  并且还可以运用java代码 --><div th:utext="name等于+${user.name}">摇摇欲坠</div><div th:utext="id等于+${user.id}">英勇无畏</div><div th:utext="user等于+${user}">无畏</div><!-- 将获得的数据用变量接收,只在该div生效  --><div th:object="${user}">user对象用*id:<p th:text="*{id}"></p>user对象用*name:<p th:text="*{name}"></p>"</div>用session调用:<div th:text="${session.user1.userId}"></div>用sesion调用属性的方法:<p th:text="${session.user1.toString()}"></p>三目运算法:    <td th:text="${session.user1.userId}==520 ? true : false">yes</td></body>
</html>

posolr.html 调用solr做出的表格页面

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript"></script>
</head>
<body><!-- 使用模板 --><div th:include="template :: copy"></div><script>alert($)</script><form action="getposolr" method="get"><input id="keyword" type="text" name="descx"><input type="submit" value="提交"/>
</form><table><tr><th>国家</th><th>城市</th><th>姓名</th><th>描述</th><th></th></tr><!-- 遍历 迭代器  循环   三目判断使用风格   --><tr th:each="List,itf:${personList}" th:style="${itf.odd}?'background-color:red':'background-color:aqua'"><td th:text="${List.country}"></td><td th:text="${List.provice}"></td><td th:text="${List.name}"></td><td th:text="${List.desc}"></td></tr>       </table></body>
</html>

template.html 一个模板的页面

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- 我是一个小模板  可以放js 类似于父项目 --><div th:fragment="copy"> 1----2-----3-----4----5----6<script>alert('我使用了alert')</script><script type="text/javascript" src="js/jquery-3.3.1.js"></script></div>
</body>
</html>

application.yml配置文件

spring:thymeleaf:#是否启用模板缓存  开发环境不用所以使用false 默认为truecache: false#回避HTML进行严格的检查的配置,需要提前引入nekohtml依赖mode: LEGACYHTML5#在构建URL时添加前缀以查看名称的前缀  ,放网页的地方prefix: classpath:/public/data: solr: host: http://192.168.146.133:8983/solr
server: port: 8888  

执行效果:
调用solr的页面

简单运用页面:

没了 水完了

thymeleaf 必须要经过控制层才能有效 直接运行无效

spring boot整合Thymeleaf简单运用与入坑水贴相关推荐

  1. java 模板引擎_极简 Spring Boot 整合 Thymeleaf 页面模板

    点击"牧码小子"关注,和众多大牛一起成长! 关注后,后台回复 java ,领取松哥为你精心准备的技术干货! 虽然现在慢慢在流行前后端分离开发,但是据松哥所了解到的,还是有一些公司在 ...

  2. Spring Boot整合Thymeleaf模板引擎

    转载自 Spring Boot整合Thymeleaf模板引擎 什么是Thymeleaf Thymeleaf是一款用于渲染XML.XHTML.HTML5内容的模板引擎.类似Velocity,FreeMa ...

  3. 解决使用Spring Boot上传图片路径错误问题【入坑之一】

    推荐一个性价比不错的虚拟机:https://blog.csdn.net/qqtingshuo/article/details/82964537 1.问题描述 关键字:  Spring Boot 1.3 ...

  4. Spring Boot整合thymeleaf异常 —— 无法通过th:text=“${xxx}“取到值的解决方法

    问题 前端页面 index.html ${msg}处爆红,无法取到值. <!doctype html><!--注意:引入thymeleaf的名称空间--> <html l ...

  5. Spring Boot整合thymeleaf

    转载自面皮大师的简书 https://www.jianshu.com/p/8d2cc7207fb2

  6. freemarker ftl模板_Spring Boot2 系列教程(十)Spring Boot 整合 Freemarker

    今天来聊聊 Spring Boot 整合 Freemarker. Freemarker 简介 这是一个相当老牌的开源的免费的模版引擎.通过 Freemarker 模版,我们可以将数据渲染成 HTML ...

  7. Spring Boot 整合 FreeMarker 实例

    前言 在之前的文章Spring Boot 整合 Thymeleaf中,我们学习了如何将模板 Thymeleaf 整合到 Spring Boot 中,那今天我们就来看看,另一个老牌的开源免费模板引擎 - ...

  8. MongoDB简单入门篇及其Spring Boot整合

    参考视频 ① MongoDB简介 简介 MongoDB是为快速开发互联网Web应用而设计的数据库系统 MongoDB的设计目标是极简.灵活. 作为Web应用栈的一部分 MongoDB是No SQL数据 ...

  9. spring boot 整合 spring cache 简单使用

    spring boot 整合 spring cache 简单使用 spring cache简介 使用spring cache spring cache简介 Spring 3.1起,提供了基于注解的对C ...

最新文章

  1. Hibernate 注解学习
  2. iView 实现可编辑表格
  3. Redis进阶-Redis 4种MQ 方案对比
  4. 中国直销未来三五年的发展趋势[转]
  5. 全Sql语句实现SBO事务日志记录与查询
  6. 【2011-2012 ACM-ICPC Pacific Northwest Regional Contest】Collateral Cleanup【建图拓扑排序】
  7. 刘济舟:《基于IAST交互式安全测试实践的初步探索》
  8. 服务器挂载本地iso文件系统,CentOS系统中挂载光盘镜像ISO文件的教程
  9. Python多进程 struct.error: ‘i‘ format
  10. Android 获取DNS
  11. Apache apollo 配置说明及用户名和密码管理
  12. Matlab如何绘制小提琴图?
  13. Java设计模式----创建者模式
  14. Android 仿照微信查看大图
  15. 销售易CEO 史彦泽:特殊时期,企业如何维持销售运转?
  16. Android手机适配问题怎么处理,都有什么方案。
  17. AN1078知识点整理
  18. SELECT 语句 (七部分)
  19. 记一次Uml编辑器Umlet
  20. [附源码]计算机毕业设计Python+uniapp基于android的古诗词鉴赏设计与实现lt9y0(程序+源码+LW+远程部署)

热门文章

  1. 纯 MongoDB 实现中文全文搜索
  2. 生物医药实验室安全知识202203第八次作业答案(2022.11.11)
  3. 开源云存储minio
  4. 敏捷实战:IT 事业部某项目燃尽图分析
  5. dell服务器查看raid信息
  6. POJ——3624 Balanced Lineup(线段树入门——区间最值问题)
  7. 深度学习项目实战——基于多模态场景监控系统
  8. 计算机实验室项目建议书,传统演播实验室项目项目建议书电子版
  9. 马化腾“正在撇清与​腾讯征信的关系”;惠普打印机偷偷回传数据;“家里的电视还在偷看你”...世界都怎么了?...
  10. Thinkpad R61 驱动下载及安装方法 for windows XP