使用Thymeleaf實現列表展示

Thymeleaf作為一款模板引擎,廣泛應用於Web應用程序中,同時也是Spring的官方推薦模板引擎之一。在Web應用程序中,常常需要展示一些列表數據,例如商品列表、用戶列表等等。本文將介紹如何使用Thymeleaf實現列表展示,包括數據準備、模板設計和數據展示等方面的內容。

一、數據準備

在開始實現列表展示前,先要準備好展示所需的數據。可以使用模擬數據,或者從數據庫或其他數據源中獲取數據。例如,我們可以使用Java對象來模擬商品列表數據:


public class Product {
    private Long id;
    private String name;
    private Double price;
    // 省略getter和setter
}
 
public class ProductRepository {
    public static List<Product> findAll() {
        List<Product> products = new ArrayList<>();
        products.add(new Product(1L, "商品1", 100.0));
        products.add(new Product(2L, "商品2", 200.0));
        products.add(new Product(3L, "商品3", 300.0));
        return products;
    }
}

以上代碼定義了一個`Product`類和一個`ProductRepository`類。`Product`類用來表示商品信息,`ProductRepository`類提供了一個`findAll`方法,用來返回所有商品信息。

二、模板設計

在數據準備好之後,接下來需要設計模板,用來展示數據。可以使用Thymeleaf的循環指令來展示列表數據。以下是一個簡單的模板設計示例:


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>商品列表</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>商品ID</th>
                <th>商品名稱</th>
                <th>商品價格</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="p : ${products}">
                <td th:text="${p.id}"></td>
                <td th:text="${p.name}"></td>
                <td th:text="${p.price}"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

以上模板設計中,使用了Thymeleaf的`th:each`指令來循環展示每個商品的信息。使用`products`作為迭代對象,通過`${p.id}`、`${p.name}`和`${p.price}`等表達式來展示每個商品的ID、名稱和價格等信息。

三、數據展示

在數據準備好和模板設計好之後,接下來需要使用Java代碼來將數據展示到頁面上。可以使用Spring MVC來實現數據展示的邏輯。以下是一個簡單的Spring MVC控制器示例:


@Controller
public class ProductController {
 
    @GetMapping("/products")
    public String list(Model model) {
        List<Product> products = ProductRepository.findAll();
        model.addAttribute("products", products);
        return "product/list";
    }
}

以上代碼定義了一個`ProductController`控制器,使用`@GetMapping`註解,將`/products`請求映射到`list`方法。在`list`方法中,使用`ProductRepository`的`findAll`方法來獲取所有商品信息,並將其存儲到模型中,即調用`model.addAttribute(“products”, products)`方法。最後,將模板的名稱`”product/list”`作為返回結果,表示渲染到頁面上。

四、小結

本文介紹了如何使用Thymeleaf實現列表展示,從數據準備、模板設計到數據展示等方面進行了詳細的闡述。當然,Thymeleaf還有更多的使用方式和指令,讀者可以根據自己的具體需求進行深入探索。

參考代碼:

Product.java:


public class Product {
    private Long id;
    private String name;
    private Double price;
    // 省略getter和setter
}

ProductRepository.java:


public class ProductRepository {
    public static List<Product> findAll() {
        List<Product> products = new ArrayList<>();
        products.add(new Product(1L, "商品1", 100.0));
        products.add(new Product(2L, "商品2", 200.0));
        products.add(new Product(3L, "商品3", 300.0));
        return products;
    }
}

模板設計示例:


<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>商品列表</title>
</head>
<body>
    <table>
        <thead>
            <tr>
                <th>商品ID</th>
                <th>商品名稱</th>
                <th>商品價格</th>
            </tr>
        </thead>
        <tbody>
            <tr th:each="p : ${products}">
                <td th:text="${p.id}"></td>
                <td th:text="${p.name}"></td>
                <td th:text="${p.price}"></td>
            </tr>
        </tbody>
    </table>
</body>
</html>

ProductController.java:


@Controller
public class ProductController {
 
    @GetMapping("/products")
    public String list(Model model) {
        List<Product> products = ProductRepository.findAll();
        model.addAttribute("products", products);
        return "product/list";
    }
}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/302072.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-30 16:10
下一篇 2024-12-30 16:10

相關推薦

  • Python字符轉列表指南

    Python是一個極為流行的腳本語言,在數據處理、數據分析、人工智能等領域廣泛應用。在很多場景下需要將字符串轉換為列表,以便於操作和處理,本篇文章將從多個方面對Python字符轉列…

    編程 2025-04-29
  • Python中不同類型的列表

    Python是一種功能強大的編程語言,其內置數據結構之一為列表。列表可以容納任意數量的元素,並且可以存儲不同類型的數據。 一、列表的基本操作 Python的列表類型支持許多操作,如…

    編程 2025-04-29
  • Python為什麼輸出空列表

    空列表是Python編程中常見的數據類型,在某些情況下,會出現輸出空列表的情況。下面我們就從多個方面為大家詳細闡述為什麼Python會輸出空列表。 一、賦值錯誤 在Python中,…

    編程 2025-04-29
  • Python定義兩個列表的多面探索

    Python是一種強大的編程語言,開放源代碼,易於學習和使用。通過Python語言,我們可以定義各種數據類型,如列表(list)。在Python中,列表(list)在處理數據方面起…

    編程 2025-04-29
  • Python編程實現列表元素逆序存放

    本文將從以下幾個方面對Python編程實現列表元素逆序存放做詳細闡述: 一、實現思路 一般來說,使用Python將列表元素逆序存放可以通過以下幾個步驟實現: 1. 定義一個列表 2…

    編程 2025-04-29
  • Python列表的讀寫操作

    本文將針對Python列表的讀取與寫入操作進行詳細的闡述,包括列表的基本操作、列表的增刪改查、列表切片、列表排序、列表反轉、列表拼接、列表複製等操作。 一、列表的基本操作 列表是P…

    編程 2025-04-29
  • Python字典列表去重

    這篇文章將介紹如何使用Python對字典列表進行去重操作,並且從多個方面進行詳細的闡述。 一、基本操作 首先我們需要了解Python字典列表去重的基本操作。Python中提供了一種…

    編程 2025-04-28
  • Python列表套列表用法介紹

    本文將圍繞Python中的列表套列表展開詳細講解。 一、基本用法 Python中的列表套列表是一種非常常見和實用的數據結構。常見的用法是在一個大列表中嵌套若干個小列表。可以使用以下…

    編程 2025-04-28
  • 如何在Python中判斷列表長度為中心

    在Python中,很多時候我們需要對列表進行操作,而有時候需要根據列表長度來進行一些特定的操作。本文將討論如何在Python中判斷列表長度為中心。 一、使用len()函數判斷列表長…

    編程 2025-04-28
  • Python數字列表逐一提取數字用法介紹

    本文將從多方面詳細闡述Python數字列表逐一提取數字的方法,包括使用循環、遞歸、lambda函數等方式。讀者可以根據具體需求選擇合適的方法。 一、循環提取數字 使用循環是最直接、…

    編程 2025-04-28

發表回復

登錄後才能評論