# Thymeleaf
#引入标签 thymeleaf、shiro
<html
xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
#设置class
th:class
class类拼接:th:classappend
ps: <i class="layui-icon" th:classappend="'layui-icon-'+${menu.img}"></i>
style样式拼接:th:styleappend
三目运算取值例子:<li class="layui-nav-item" th:classappend="${#httpServletRequest.getParameter('falg')} == 1?'layui-this':'' "><a href="../blog/index?falg=1">首页</a></li>
#显示文本
显示普通文本内容
th:text="${menu.name}"
显示读取带html标签的内容
th:utext="${l.content}"
#循环th:each
<li th:each="menu:${menuList}">
${menu.name}
</li>
#标签外赋值
[[${menu.name}]]
#th:value 三目运算取值
<input type="email" id="salesemail" th:value="${sales!=null?sales.email:''}" placeholder="Email" autocomplete="off" class="layui-input layui-readonly" disabled="true" >
#a链接 th:href
直接显示链接地址:<a th:href="@{child.url}">
获取后台链接地址:<a th:href="${child.url}" th:text="${child.name}"/>
在html页面中通过如下方式进行url的动态参数拼接即可,如果是多个参数,只需要在()内逗号隔开
<a th:href='@{/blog/comment(id=${blog.getId()})}' class="pull-right">写评论</a>
连接跳转传递参数
th:href='@{/blog/details(id=${blog.getId()})}'
#select选择框下拉循环:
<select name="roleId" id="roleId">
<option value="">请选择</option>
<option th:each="role:${roleList}" th:value="${role.id}" th:text="${role.name}"></option>
</select>
选中
th:selected="${goods.catId eq c.id}"
#th:attr用法
1、写死的单个属性值添加
th:attr="class=btn"
2、写死的多个属性值添加
th:attr="class=btn,title=link"
3、当一个属性的值较多的时候可以用 |
th:attr="class=|btn btn-group|"
4、属性值动态赋值
th:attr="value=#{obj.value},title=#{obj.title}"
5、动态拼接属性值
th:attr="value=select_val|#{obj.val}|"
6、属性值中有引号的情况
th:attr="data-am-collapse=|{target:'#collapse-nav5'}|"
#th:if 判断
gt:great than(大于)>
ge:great equal(大于等于)>=
eq:equal(等于)==
lt:less than(小于)<
le:less equal(小于等于)<=
ne:not equal(不等于)!=
例如:
<div th:if=" ${count} lt '3'"></div>
#判断是否包含
th:checked="${#strings.contains(zx_data.menuControl,menu.id)}"
#格式化数字对象<td th:text="${#numbers.formatDecimal(prod.price, 1, 2)}">0.99</td>
#四种表达式参数地址:https://www.cnblogs.com/nuoyiamy/p/5591559.html
# th:src 图片地址三目运算
<img class="layui-nav-img" th:src="${(user.avatarUrl != null && !#strings.isEmpty(user.avatarUrl)) ? '/asset/avatar/'+user.avatarUrl : '/asset/avatar/head_portrait2.png'}"/>
<span th:text="${user.name}"></span>
#shiro标签在html页面起作用配置和thymeleaf页面使用
1、html页面引入
<html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
2、ShiroConfig配置引入
@Bean
public ShiroDialect shiroDialect(){
return new ShiroDialect();
}
3、pom.xml引入jar包
<!-- shiro config html-->
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>2.0.0</version>
</dependency>
#th:include引入公共部分
公共部分
<div xmlns:th="http://www.thymeleaf.org" th:fragment="header">
引入部分
<div class="header" th:include="common/head :: header"></div>
其中 common/head 为文件的位置名字 header是公共页面定义的fragment
#js取值
必须加上th:inline="javascript"才能够使用该方法。
<script th:inline="javascript">
#lay-href跳转
左侧菜单点击,右边打开新的页面
<a th:attr="lay-href=${child.url}" th:text="${child.name}">菜单</a>
#左侧菜单点击刷新右边显示框
<a th:href="@{${child.url}}" th:target="bodyFrame" th:text="${child.name}">菜单</a>
<iframe name="bodyFrame" src="census/goIndex" frameborder="0" class="layadmin-iframe" ></iframe>
来源:oschina
链接:https://my.oschina.net/u/3204029/blog/3160773