Thymeleaf的th标签的应用

1、变量表达式  ${……}

例子:<input type="text" name="userName" value="James Carrot" th:value="${user.name}" />

引用user对象的name属性值。

2、选择/星号表达式 *{……}

例子:<div th:object="${session.user}"> <p>Nationality: <span th:text="*{nationality}">Saturn</span>.</p> </div>

选择表达式一般跟在th:object后,直接取object中的属性。

3、文字国际化表达式  #{……}

例子:<p th:utext="#{home.welcome}">Welcome to our grocery store!</p>

调用国际化的welcome语句,国际化资源文件如下所示:

resource_en_US.properties:
home.welcome=Welcome to here!
resource_zh_CN.properties:
home.welcome=欢迎您的到来!

4、URL表达式  @{……} 

例:1:<a href="details.html" th:href="@{/order/details(orderId=${o.id})}">view</a>

 @{……}支持决定路径和相对路径。其中相对路径又支持跨上下文调用url和协议的引用(//code.jquery.com/jquery-2.0.3.min.js)。

例子2:当URL为后台传出的参数
<img src="../../static/assets/images/qr-code.jpg" th:src="@{${path}}" alt="二维码" />

5、简单数据转换(数字,日期)

例子:

<dt>价格</dt>  

<dd th:text="${#numbers.formatDecimal(product.price, 1, 2)}">180</dd>   

<dt>进货日期</dt>   

<dd th:text="${#dates.format(product.availableFrom, 'yyyy-MM-dd')}">2014-12-01</dd>

6、字符串拼接

例子:<dd th:text="${'$'+product.price}">235</dd>

7、表单

例子:

<form th:action="@{/bb}" th:object="${user}" method="post" th:method="post">

    <input type="text" th:field="*{name}"/>
    <input type="text" th:field="*{msg}"/>

    <input type="submit"/>
</form>

8、显示页面的数据迭代

//用 th:remove 移除除了第一个外的静态数据,用第一个tr标签进行循环迭代显示
    <tbody th:remove="all-but-first">
          //将后台传出的 productList 的集合进行迭代,用product参数接收,通过product访问属性值
                <tr th:each="product:${productList}">
            //用count进行统计,有顺序的显示
            <td th:text="${productStat.count}">1</td>
                    <td th:text="${product.description}">Red Chair</td>
                    <td th:text="${'$' + #numbers.formatDecimal(product.price, 1, 2)}">$123</td>
                    <td th:text="${#dates.format(product.availableFrom, 'yyyy-MM-dd')}">2014-12-01</td>
                </tr>
                <tr>
                    <td>White table</td>
                    <td>$200</td>
                    <td>15-Jul-2013</td>
                </tr>
                <tr>
                    <td>Reb table</td>
                    <td>$200</td>
                    <td>15-Jul-2013</td>
                </tr>
                <tr>
                    <td>Blue table</td>
                    <td>$200</td>
                    <td>15-Jul-2013</td>
                </tr>
      </tbody>

9、条件判断,不能用"<”,">"等符号,要用"lt"等替代

例子:<span th:if="${product.price lt 100}" class="offer">Special offer!</span>

10、根据后台数据选中select的选项

 <div class="form-group col-lg-6">
      <label >性别<span>&nbsp;Sex:</span></label>
      <select th:field="${resume.gender}" class="form-control" th:switch="${resumes.gender.toString()}"
            data-required="true">
              <option value="男" th:case="'男'" th:selected="selected" >男</option>
              <option value="女" th:case="'女'" th:selected="selected" >女</option>
              <option value="">请选择</option>
      </select>
 </div>

 

其余的th 标签应用

一、表达式

  1)条件表达式

             a)If-then                            (if) ? (then)

             b)If-then-else                    (if) ? (then) : (else)

             c)Default                           (value) ? : (defaltvalue)           

 2)文字

            a)文本文字                        'one text','Another one',……

            b)数字文字                        0,34,3.0,12.3,……

            c)布尔文字                        true,flase

            d)空文字                            null

            e)文字标记                         one,sometext,main,……

        3)文本处理

            a)字符串连接                       +

            b)文字替换                           | The name id ${name} |        

        4)算术表达式

            a)基本表达式                        +,-,*,/,%

            b)减号(一元运算符)           -

        5)布尔表达式

            a)基本表达式                        and,or

            b)布尔否定(一元运算符)    !,not

        6)比较和相等

            a)比较                                >,<,>=,<=(gt,lt,ge,le)    

            b)相等表达式                       ==,!=(eq,ne)     

          

二、表达式基本对象

        在上下文变量评估OGNL表达式时,一些对象表达式可获得更高的灵活性。这些对象将由#号开始引用。

        - #ctx: 上下文对象.

        - #vars: 上下文变量.

        - #locale: 上下文语言环境.

        - #httpServletRequest: (仅在web上文)HttpServletRequest 对象.

        - #httpSession: (仅在web上文)  HttpSession 对象.

      --表达式功能对象

        - #dates:java.util.Date对象的实用方法。 

        - #calendars:和dates类似, 但是 java.util.Calendar 对象.

        - #numbers: 格式化数字对象的实用方法。

        - #strings: 字符创对象的实用方法: contains, startsWith, prepending/appending等.

        - #objects: 对objects操作的实用方法。

        - #bools: 对布尔值求值的实用方法。

        - #arrays: 数组的实用方法。

        - #lists: list的实用方法。

        - #sets: set的实用方法。

        - #maps: map的实用方法。

        - #aggregates: 对数组或集合创建聚合的实用方法。

        - #messages: 在表达式中获取外部信息的实用方法。

        - #ids: 处理可能重复的id属性的实用方法 (比如:迭代的结果)。

     --给特定的属性设值

        下面是用th:action给action设值。

           <form action="subscribe.html" th:action="@{/subscribe}">

       

三、还有很多这样的属性,它们每一个都针对一个特定的XHTML或者HTML5属性:

1、th:text="${data}"

 将data的值替换该属性所在标签的body。字符常量要用引号,比如th:text="'hello world'",th:text="2011+3",th:text="'my name is '+${user.name}"
 

2、th:utext和th:text的区别是"unescaped text"。
 

3、th:with

定义变量,th:with="isEven=${prodStat.count}%2==0",定义多个变量可以用逗号分隔。
 

4、th:attr

设置标签属性,多个属性可以用逗号分隔,比如th:attr="src=@{/image/aa.jpg},title=#{logo}",此标签不太优雅,一般用的比较少。
 

5、th:[tagAttr]

 设置标签的各个属性,比如th:value,th:action等。可以一次设置两个属性,比如:th:alt-title="#{logo}"
对属性增加前缀和后缀,用th:attrappend,th:attrprepend,比如:th:attrappend="class=${' '+cssStyle}"
对于属性是有些特定值的,比如checked属性,thymeleaf都采用bool值,比如th:checked=${user.isActive}

6、th:each

循环,<tr th:each="user,userStat:${users}">,userStat是状态变量,有 index,count,size,current,even,odd,first,last等属性,如果没有显示设置状态变量,    thymeleaf会默 认给个“变量名+Stat"的状态变量。

7、th:if or th:unless

条件判断,支持布尔值,数字(非零为true),字符,字符串等。

8、 th:switch,th:case

  选择语句。 th:case="*"表示default case。

 

 

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值