Thymeleaf标签

强颜欢笑 提交于 2020-02-26 18:03:10


# 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>

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!