最近开始使用Spring Boot开发轻量级服务器应用,由于jsp和Spring Boot兼容并不好,打包成Jar文件部署后,jsp不能一起打包进Jar包,导致无法生效。官方推荐使用模板(freemarker、thymeleaf等)作为页面展示,经过对比我觉得thymeleaf会更好,所以选择了thymeleaf来代替jsp。
文件路径thymeleaf默认的存放目录是resources/templates,css和js文件默认的存放路径是resources/static。
├── build.gradle ├── settings.gradle └── src ├── main │ ├── kotlin │ ├── resources │ │ ├── application.properties │ │ ├── static │ │ │ ├── css │ │ │ │ └── index.css │ │ │ └── js │ │ │ └── index.js │ │ └── templates │ │ └── index.html │ └── webapp无需启动服务即可预览
thymeleaf文件的是以.html结尾的。相对.jsp有个非常大的好处就是可以直接浏览器打开预览效果,而不需要启动服务。
关联CSS、JS资源文件需要添加标明 th标签,添加css需要填写href和th:href属性,href属性是为了能够在不启动服务的情况下预览html,也是默认值,th:href是为了使用时候替代href。
基本用法Title Message
index.html
... Wiki 查看详情
Controller类如下:
@Controller class TestController { @RequestMapping("/index") fun index(map: MutableMap): String { map["user"] = User(1, "Wiki","/user?id=1") return "index" } } 结果:
Wiki 查看详情
其中查看详情是超链接http://localhost:8080/user?id=1
if判断标签未成年日期格式化遍历标签
| ID | NAME |
|---|---|
| id | name |
th:include标签
footer.html文件内容:
© 2016 xxx
index.html内容:
输出session的参数转义问题
当我们的代码js中的包含&&等代码,需要转义,请直接这样用:
[[]] 标签当我们输出的内容不是标签或者内容,同样可以用[[]]来输出我们要的结果。
Hello, [[${session.user.name}]]!
等价:
在javascript使用th:text和th:utext区别Hello, Wiki!
当我们需要输出带有换行符n的字符串的时候,通常我们希望
当map["message"] = "我
是
Wiki",输出的源码如下:
我<br>是<br>Wiki 我
是
Wiki
显示结果如下:
我坑:
是
Wiki 我 是 Wiki
由于[[]]thymeleaf语法,我们在定义二维数据的时候必须[ []]这样写,可以避免被识别成thymeleaf语法。
&&也属于thymeleaf语法,必须通过包围,避免被转义。
当需要输出
换行符时候要改用th:utext。
作者:ImWiki
链接:https://www.jianshu.com/p/810ace1aeeae



