網頁

2021/5/25

Spring Boot Thymeleaf 條件判斷屬性 th:if及th:unless

Spring Boot Thymeleaf 使用th:ifth:unless條件判斷。


參考「Spring Boot Thymeleaf 簡單範例」搭建Spring Boot Thymeleaf專案,下面以此進行修改。

當html標籤的內容需要判斷某些條件為true時才顯示,可用th:if,反之用th:unless

例如hello.html修改如下。當${name.length()}的長度超過10時顯示"long",反之顯示"short"。

gtge比較運算符,分別代表>(大於)及>=(大於等於)。因為XML(HTML)不可在標籤屬性值使用<>符號。

hello.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Hello Thymeleaf</title>
</head>
<body>
    <p th:text="'Hello, ' + ${name} + '!'"/>

    <p>'<span th:text="${name}"></span>' length is
        <span th:if="${name.length()} gt 10">long</span>
        <span th:unless="${name.length()} ge 10">short</span>.
    </p>
</body>
</html>

啟動專案後在瀏覽器輸入http://localhost:8080/demo/hello?name=John的回應如下。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Hello Thymeleaf</title>
</head>
<body>
    <p>Hello, John!</p>

    <p>'<span>John</span>' length is <span>short</span>.</p>

</body>
</html>

輸入http://localhost:8080/demo/hello?name=Maximilianus的回應如下。

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Hello Thymeleaf</title>
</head>
<body>
    <p>Hello, Maximilianus!</p>

    <p>'<span>Maximilianus</span>' length is <span>long</span>.</p>

</body>
</html>


2 則留言:

  1. 肉豬大 好

    小弟之前在大學時寫程式找相關文章時,就有看過您的文章

    ( 但因大學時對Java基礎觀念的不熟
    故目前在資策會 跨領域java web班補充知識 )

    最近因為查找 Hbernate JPA 的相關資料時,參考肉大之前寫的文章,無意間看到肉大是學長

    但 學習到目前有個疑慮,像程式設計技術日新月異
    ex:從jsp servlet 到 springmvc 到 springboot
    通常肉大都是怎麼有效率的自學,來學會此技術的
    看影片嗎 或者買書 或者stackoverflow之類的

    回覆刪除
  2. 我認為最有效的學習方式是弄懂平日工作中使用的技術用並解決問題。不過工作中不是一直能碰到你想碰的,這時就只能上網了解現在流行的技術有哪些,然後買書或是看線上課程,同時寫個小專案練習所學到的東西。
    另外寫部落格是很好的學習方法,所以你看我最近在寫Thymeleaf那就是因為我正在學Thymeleaf。

    回覆刪除