thymeleaf相关知识

循环:th:each

<!--循环(arr为后台穿的数组,包括id和name值)-->
        
        <th:block th:each='list,state : ${arr}'>
            <li th:text='${list.id}'></li>
            <li th:text='${list.name}'></li>
            <li th:text='${state.index}'></li>  <!--state.index为循环的索引,从0开始-->
            <li th:text='${state.count}'></li>  <!--state.count为循环的索引,从1开始-->
            <li th:text='${state.size}'></li>  <!--state.size为对象的大小,长度-->
            <li th:text='${state.current}'></li>  <!--state.current迭代的变量-->
            <li th:text='${state.even}'></li>  <!--布尔值,当前循环是否为偶数-->
            <li th:text='${state.odd}'></li>  <!--布尔值,当前循环是否为奇数-->
            <li th:text='${state.first}'></li>  <!--布尔值,当前循环是否为第一个-->
            <li th:text='${state.last}'></li>  <!--布尔值,当前循环是否为最后一个-->
        </th:block>
《说明》<th:block></th:block>  thymealeaf解析时会移除掉此标签对,但不会移除其中的内容。(一般出现在循环和公共引用中)

运算比较符:

gt:great than     (大于)>
ge:great equal     (大于等于)>=
eq:equal        (等于)==
lt:less than     (小于)<
le:less equal     (小于等于)<=
ne:not equal    (不等于)!=

 switch...case...

<!--如果遍历出来的值为张三,则显示'名叫张三'-->
<!--如果遍历出来的值为李四,则显示'名叫李四'-->
<th:block th:each='list,state :${arr}'>
    <li th:switch='${list.name}'>
        <span th:case='张三' th:text='名叫张三'></span>
        <span th:case='李四' th:text='名叫李四'></span>
    </li>
</th:block>    
《说明》满足其中一个条件才会显示对应的值,如果都不满足,则不显示.不同display:block,这里是标签都没有,没有这个元素,上面的if条件也一样

 select

<select th:field='${sex}' th:switch='${sex.tostring}'>
    <option value="男" th:case='男' th:selected='selected'></option>
    <option value="女" th:case='女' th:selected='selected'></option>
    <option value="" >请选择</option>
</select>
《说明》后台取的sex数据,如果对应的值为男,则显示''男'',为女则显示''女'',如果为空,则默认显示'请选择'

Mybatis开发过程中,在userMapper.xml文件中新建映射sql的标签,模糊查询相关的操作:

<!-- ******************** 模糊查询的常用的3种方式:********************* -->
    <select id="getUsersByFuzzyQuery" parameterType="User" resultType="User">
        select <include refid="columns"/> from users
        <where>
            <!--
                方法一: 直接使用 % 拼接字符串 
                注意:此处不能写成  "%#{name}%" ,#{name}就成了字符串的一部分,
                会发生这样一个异常: The error occurred while setting parameters,
                应该写成: "%"#{name}"%",即#{name}是一个整体,前后加上%
            -->
            <if test="name != null">
                name like "%"#{name}"%"
            </if>
            <!--方法二: 使用concat(str1,str2)函数将两个参数连接 -->
            <if test="phone != null">
                and phone like concat(concat("%",#{phone}),"%")
            </if>
            <!--方法三: 使用 bind 标签,对字符串进行绑定,然后对绑定后的字符串使用 like 关键字进行模糊查询 -->
            <if test="email != null">
                <bind name="pattern" value="'%'+email+'%'"/>
                and email like #{pattern}
            </if>
        </where>
    </select>
原文地址:https://www.cnblogs.com/chenglaoshi/p/13341165.html