java h5模板引擎_详解SpringBoot+Thymeleaf 基于HTML5的现代模板引擎
序言:
Thymeleaf 是Java服务端的模板引擎,与传统的JSP不同,前者可以使用浏览器直接打开,因为可以忽略掉拓展属性,相当于打开原生页面,给前端人员也带来一定的便利。如果你已经厌倦了JSP+JSTL的组合,Thymeleaf或许是个不错的选择!本工程传送门:SpringBoot-Web-Thymeleaf
开始使用
1.引入依赖
SpringBoot默认提供了Thymeleaf的Starter,只需简单引入依赖即可。
org.springframework.boot
spring-boot-starter-thymeleaf
目前默认版本是2.1,如果想升级版本到3.0,可以这样修改。
3.0.7.RELEASE
2.0.0
为了方便开发,项目案例采用了热部署工具dev-tools ,这样我们在修改页面之后,IDEA会自动加载,从而达到实现热更新的效果。
org.springframework.boot
spring-boot-devtools
runtime
注:由于IDEA默认关闭了热部署,需要做一些设置才能使其生效。解决方法:首先按住Ctrl+Shift+Alt+/ 然后进入 Registry ,然后勾选compiler.automake.allow.when.app.running 即可。另外,Build->Compiler 也要勾选上Build Project automatically .
2. 添加相关配置
Thymeleaf默认开启了页面缓存,在开发的时候,应该关闭缓存。此外,通常我们还会指定页面的存放路径。(默认是classpath:/templates/)
application.yml 配置如下:
spring:
thymeleaf:
cache: false #关闭缓存
prefix: classpath:/views/ #添加路径前缀
3.编写HTML
编写Thymeleaf和书写HTML5页面没有什么不同,最大的转变就是使用拓展属性(th:xx)去跟服务端进行数据交互,保留原始页面风格,也是Thymeleaf的推崇的风格。例如下面这个简单的案例,启动项目,我们发现页面跳转的是简书的连接,这一点也验证了Thymeleaf覆盖原生页面数据的极佳能力。
页面代码:
Thymeleaf
欢迎使用Thymeleaf!!
戳我有惊喜
后端代码:
@Controller
public class UserController {
@GetMapping("/")
public String index(Model model) {
model.addAttribute("info", "user/list");
return "index";
}
@GetMapping("/user")
public String hehe(Model model) {
model.addAttribute("user", new User(UUID.randomUUID().toString(), "yizhiwazi", "20170928"));
return "user";
}
@GetMapping("/user/list")
public String userlist(Model model) {
List userList = new ArrayList<>();
userList.add(new User(UUID.randomUUID().toString(), "yizhiwazi", "20170928"));
userList.add(new User(UUID.randomUUID().toString(), "kumamon", "123456"));
userList.add(new User(UUID.randomUUID().toString(), "admin", "admin"));
model.addAttribute("userList", userList);
return "userList";
}
}
现在我们尝试回填一个表单,展示单个用户信息。
接下来,我们进入一个更复杂的案例,例如展示一个用户列表信息,不需要编写新的标签,就可以完成对批量用户的遍历。
用户列表
用户姓名:
登录密码:
好了,Thymeleaf简单介绍到这里,更多详细说明,可阅读Thymeleaf 官方指南 3.0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java h5模板引擎_详解SpringBoot+Thymeleaf 基于HTML5的现代模板引擎相关推荐
- java xml快捷注释_详解SpringBoot 快速整合Mybatis(去XML化+注解进阶)
序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用@Select注解直接编写SQL完成数据查询,使用@SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求. 一 ...
- java 配置文件的路径_详解java配置文件的路径问题
详解java配置文件的路径问题 详解java配置文件的路径问题 各种语言都有自己所支持的配置文件,配置文件中有很多变量是经常改变的.不将程序中的各种变量写死,这样能更方便地脱离程序本身去修改相关变量设 ...
- java新建一个女朋友_详解java创建一个女朋友类(对象啥的new一个就是)==建造者模式,一键重写...
创建一个女朋友,她有很多的属性,比如:性别,年龄,身高,体重,类型等等,虽然每个女朋友都有这些属性,但是每个人找女朋友的要求都是不一样的,有的人喜欢男的,有的人喜欢女的,有的喜欢胖的,不同的人可以根据 ...
- java生成pdf方法_详解Java生成PDF文档方法|chu
最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持iText,生成PDF文档,还支持将XML ...
- java中batch基础_详解Spring batch 入门学习教程(附源码)
详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...
- java 变量与常量_详解Java变量与常量
一.常量 用final修饰(也称最终变量) 常量在声明时必须赋初值,赋值后不能再修改值 常量名通常用全大写字母表示 声明时需要添加final或static final类型修饰符,例如: private ...
- java使用集合存储过程_详解java调用存储过程并封装成map
详解java调用存储过程并封装成map 发布于 2020-5-1| 复制链接 摘记: 详解java调用存储过程并封装成map 本文代码中注释写的比较清楚不在单独说明,希望能帮助到大 ...
- java同步异步调用_详解java 三种调用机制(同步、回调、异步)
1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...
- java 死锁 内存消耗_详解Java中synchronized关键字的死锁和内存占用问题
先看一段synchronized 的详解: synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码. 一.当两个并 ...
最新文章
- 大数据集合求交集_通达信北上资金+盘面分析sp版面,智能大数据集合,筹码占比指标...
- 免费下载!200+讲者核心观点公布!2021最强AI学术会议视频全部回放
- 001PHP文件处理——文件处理disk_total_space disk_free_space basename dirname file_exists filetype...
- android学习从模仿开始 —— 模仿UI 导航帖
- Linux内核开发工作方向
- Attention-OCR(Attention-based Extraction of Structured Information from Street View Imagery)
- Sublime Text 2 代码片断
- NAACL 2019最佳论文:量子概率驱动的神经网络
- matlab 高分屏 变小,解决Ubuntu高分屏下matlab标题栏(菜单栏)字体过小问题
- 如何用css和HTML结合画熊,结合伪元素实现的纯CSS3高级图形绘制
- creator2.0.2 native游戏截屏微信分享
- android指纹java_Android
- Node 连接mysql数据库
- 官方示例之地球模块五:ThingLayer
- 【51单片机开发板】可调周期、占空比pwm工程
- 未检测到正确安装的网络适配器_网络适配器图标出现黄色感叹号的解决办法
- java字符型变量有几个,Java 字符型变量
- 小i机器人2019数博会C位展实力 “认知智能”引领行业创新变革
- 【转】一款已上市MMO手游地图同步方案总结
- JavaWeb|浅谈Cookie