spring boot的thymeleaf和freemarker模板

thymeleaf和freemarker两大基本模板 工作的话都用的比较多 我就介绍一些它们在页面的基本语法

thymeleaf

它是用于HTML的开发的 简单说就是HTML页面 

想要有这个HTML页面默认是要导pom但在springboot项目创建时勾选这个模板就好了

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

下面就是它的一些基本标签 方便在页面取值或拿值 以及遍历等

主要的标签是th:

用此标签还需导入一个文件 里面有标签大量一些属性

<html xmlns:th="http://www.thymeleaf.org">
<body>
<h3>用户信息管理</h3>
<!--可以获取你需要的值在页面展示-->
<h3 th:text="${title}"></h3>
<table border="1px">
    <tr>
        <td>用户id</td>
        <td>用户名字</td>
        <td>用户地址</td>
        <td>操作</td>
    </tr>
    <!--增强for循环 左边是变量名 右边是集合 -->
    <tr th:each="user:${userlist}">
        <td th:text="${user.sid}"></td>
        <td th:text="${user.sname}"></td>
        <td th:text="${user.address}"></td>
        <td><a href="">删除</a></td>
    </tr>
</table>

<select name="sname">
    <!--把遍历出来的数据在下拉框展示 展示名字 值是id 为了有些值传后台去-->
    <option th:each="user:${userlist}" th:text="${user.sname}" th:value="${user.sid}"></option>
</select>
</body>

freemarker

同样创建项目就要导pom 前面勾选了就不用了
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
   </dependency>
它的后缀是ftl结尾的 用法跟HTML有一定的区别

取整跟jsp一样${...} 用法 标签前面都要用#来标识<#if> <#elesif><#else><#if/> 

一些取整方面用法都打了备注可方便了解 都是从后台拿session里存的

<body>
ftl用法
<h3>页面取值</h3>
<#--如果后台这个值为null会报错 为“”就不会 如果后台传值就是username里的值 没传就是 !'aa'里的值-->
${username!"dd"}
<h3>非空判断是否存在</h3>
<#--判断后台有没有这个username的属性 有就存在 没有或者为null就没有-->
<#if username?exists>
    存在
</#if>
<h3>条件表达式判断</h3>
<#--拿到后端传的值 进行判断-->
<#if sex="男">
男
<#elseif sex="女">
女
<#else>
保密
</#if>
<h3>遍历</h3>
<table border="1px">
    <tr>
        <td>用户id</td>
        <td>用户名字</td>
        <td>用户地址</td>
        <td>操作</td>
    </tr>
    <!--增强for循环 跟HTML相反左边是集合 右边是变量 -->
   <#list works as work>
    <tr>
        <td >${work.sid}</td>
        <td >${work.sname}</td>
        <td >${work.address}</td>
        <td><a href="">删除</a></td>
    </tr>
   </#list>
</table>

<#--代表包含某个页面 做底部或者头部 或引用一些常用的标签可用这个来把指定页面放进来-->
<#--<#include 'list.ftl'/>-->

<#--global assign相当于c标签的set 使用的话直接拿变量名就可拿到值-->
<#global aa>
    ${springMacroRequestContext.contextPath}
</#global>
<#assign bb>
    ${springMacroRequestContext.contextPath}
</#assign>
${aa},${bb}
</body>

另外idea默认没有freemarker创建的页面 可自行添加这个文件

在设置里找到file and code Templates 然后点击+ 添加一个模板 里面内容跟HTML刚创建的界面一样 这样右键就能new一个ftl的模板

spring boot的thymeleaf和freemarker模板