欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

thymeleaf實(shí)現(xiàn)th:each雙重多重嵌套功能

 更新時間:2019年11月19日 15:15:34   作者:曲健磊  
今天給大家分享一個使用 thymeleaf 實(shí)現(xiàn)一個動態(tài)加載一二級文章分類的功能,本文通過代碼講解的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友參考下吧

博主最近在做一個個人的博客網(wǎng)站,準(zhǔn)備用 thymeleaf 實(shí)現(xiàn)一個動態(tài)加載一二級文章分類的功能,效果如下:

后臺實(shí)體類代碼如下:

/**
 * @author 曲健磊
 * @date 2019-08-22 20:28:18
 * @description 一級分類實(shí)體類
 */
public class CateVO {
  /**
   * 一級分類id
   */
  private Integer cate1Id;
  /**
   * 一級分類名稱
   */
  private String cate1Name;
  /**
   * 該一級分類下的二級分類列表
   */
  private List<Cate2> cate2List;
 // 省略set get方法
}
/**
 * @author 曲健磊
 * @date 2019-08-15 20:18:44
 * @description 二級分類實(shí)體類
 */
public class Cate2 {
 /**
   * 二級分類id
   */
  private Integer id;
 /**
   * 二級分類名稱
   */
  private String cateName;
}

Controller 層的代碼如下:

@Controller
@RequestMapping("/")
public class IndexController {
  @Autowired
  private CateService cateService;
 /**
 * 我配置的項(xiàng)目端口號是:80
 * 所以,當(dāng)用戶在瀏覽器上輸入:127.0.0.1:80 或 127.0.0.1 時請求會進(jìn)到這個方法里
 */
  @GetMapping("/")
  public String defaultWebPage(HttpServletRequest request){
    // 1.模擬獲取所有的一級分類以及每個一級分類下的所有二級分類
 List<CateVO> allCateList = new ArrayList<CateVO>();
 // 1.1.一級分類
 CateVO cateVO1 = new CateVO();
 cateVO1.setCate1Id(1);
 cateVO1.setCate1Name("大數(shù)據(jù)");
 
 // 1.2.該一級分類下的二級分類列表
 List<Cate2> cate2_1List = new ArrayList<Cate2>();
 
 // 1.2.1.第一個二級分類
 Cate2 cate2_1_1 = new Cate2();
 cate2_1_1.setId(1);
 cate2_1_1.setCateName("Hadoop");
 
 // 1.2.2.第二個二級分類
 Cate2 cate2_1_2 = new Cate2();
 cate2_1_2.setId(1);
 cate2_1_2.setCateName("Spark");
 
 cate2_1List.add(cate2_1_1);
 cate2_1List.add(cate2_1_2);
 // 1.3.把所有的二級分類添加到該一級分類下
 cateVO1.setCate2List(cate2_1List);
 // 1.4.把所有的一級分類放入列表中,多個的話以此類推(通常都是直接查數(shù)據(jù)庫的)
 allCateList.add(cateVO1);
 // 2.將一級分類列表放入 request 域中。
    request.setAttribute("cateList", allCateList);
    // 3.返回 index.html 頁面
    return "index";
  }
}

前臺 html 的代碼如下(簡化):

<!DOCTYPE HTML>
<!-- thymeleaf的引用 -->
<html xmlns:th="http://www.thymeleaf.org">
<head>
<!-- 引用的css,js -->
</head>
<!-- 頁面主體 -->
<body>
<ul>
 <!-- 這一級是一級的分類 -->
  <li th:each="cate1:${cateList}"><a th:text="${cate1.cate1Name}"></a>
   <!-- 這是一級下的二級分類列表 -->
    <ul>
     <li th:each="cate2:${cate1.cate2List}"><a th:text="${cate2.cateName}"></a></li>
    </ul>
  </li>
</ul>
</body>
</html>

博主直接用 java 代碼解釋一下上面的 th:each 那里是什么意思吧:

// cateList 就是我們在 Controller 中向 request 域中設(shè)置的那個屬性
for (CateVO cate1 : cateList) {
 System.out.println(cate1.cate1Name);
 
 // cate1這個變量現(xiàn)在就存在于request域中,我們可以直接調(diào)用它的屬性和方法
 for (Cate2 cate2 : cate1.cate2List) {
 System.out.println(cate2.cateName);
 
 // 依次類推,如果有三級分類這里繼續(xù)調(diào)用cate2的屬性或方法就可以
 }
}

cate1:${cateList} 這個寫法是固定的格式,冒號前的 cate1 是新定義的臨時變量,cateList 是我們在 Controller 中放入 request 域中的變量;在一級分類循環(huán)里面,我們是可以直接獲取剛才定義的臨時變量:cate1 的。

所以,我們可以繼續(xù) th:each 遍歷該一級分類的二級分類列表,三級四級以此類推。

總結(jié)

以上所述是小編給大家介紹的thymeleaf實(shí)現(xiàn)th:each雙重多重嵌套功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 計(jì)算機(jī)程序設(shè)計(jì)并行計(jì)算概念及定義全面詳解

    計(jì)算機(jī)程序設(shè)計(jì)并行計(jì)算概念及定義全面詳解

    最近項(xiàng)目需要實(shí)現(xiàn)程序的并行化,剛好借著翻譯這篇帖子的機(jī)會,了解和熟悉并行計(jì)算的基本概念和程序設(shè)計(jì),有需要的朋友可以借鑒參考下
    2021-11-11
  • kali2021.4a使用virtualenv安裝angr的詳細(xì)過程

    kali2021.4a使用virtualenv安裝angr的詳細(xì)過程

    在Linux中安裝各種依賴python的軟件時,最頭疼的問題之一就是各個軟件的python版本不匹配的問題,angr依賴python3,因此考慮使用virtualenv來安裝angr,需要的朋友可以參考下
    2022-11-11
  • 2018年最值得一讀的互聯(lián)網(wǎng)書單

    2018年最值得一讀的互聯(lián)網(wǎng)書單

    2018年已經(jīng)過去了近三分之二了,是不是感覺時光匆匆、一去不復(fù)返,過去的時間我們追不回,但是我們可以更加珍惜以后的時間!下面這篇文章主要給大家分享了2018年最值得一讀的互聯(lián)網(wǎng)書單,希望以后的日子里大家可以多讀書,讀好書
    2018-08-08
  • Jebrains付費(fèi)插件Activation code[持續(xù)更新]

    Jebrains付費(fèi)插件Activation code[持續(xù)更新]

    這篇文章主要介紹了Jebrains付費(fèi)插件Activation code[持續(xù)更新],使用本Activation code需要jetbrains-agent支持!感興趣的朋友跟隨小編一起看看吧
    2020-09-09
  • IntelliJ IDEA 2020.1配置svn的圖文教程

    IntelliJ IDEA 2020.1配置svn的圖文教程

    這篇文章主要介紹了IntelliJ IDEA 2020.1配置svn的圖文教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 一看就懂的IDEA編輯器 .http教程詳解

    一看就懂的IDEA編輯器 .http教程詳解

    這篇文章主要介紹了一看就懂的IDEA編輯器 .http教程詳解,本文以PHPStorm的ide作為例子的講解,需要的朋友可以參考下
    2020-11-11
  • 適合后臺管理系統(tǒng)開發(fā)的12個前端框架(小結(jié))

    適合后臺管理系統(tǒng)開發(fā)的12個前端框架(小結(jié))

    當(dāng)你寫項(xiàng)目的時候,如何快速的完成一個項(xiàng)目的搭建,這個時候就需要借助到一些模板了,前端開發(fā)的一個好處就是,各類UI模板都是相當(dāng)?shù)凝R全的,本文就介紹幾個前端框架,感興趣的可以了解一下
    2021-06-06
  • 基于Laravel + Vue + Element 實(shí)現(xiàn) 人力資源系統(tǒng)(考勤應(yīng)用 )

    基于Laravel + Vue + Element 實(shí)現(xiàn) 人力資源系統(tǒng)(考勤應(yīng)用 )

    Bee 是人力資源系統(tǒng)中的考勤應(yīng)用,主要功能用于員工申請假單。接下來通過本文給大家介紹基于Laravel + Vue + Element 考勤應(yīng)用 之 人力資源系統(tǒng),需要的朋友可以參考下
    2019-10-10
  • 編程界主流腳本編程語言的比較和選擇

    編程界主流腳本編程語言的比較和選擇

    這篇文章主要介紹了編程界主流腳本編程語言的比較和選擇,本文分析了Unix/Linux Shell、Python/Jython、Ruby/JRuby、Perl、Groovy等腳本語言的優(yōu)缺點(diǎn),幫助您快速了解各大語言,需要的朋友可以參考下
    2015-05-05
  • 使用git命令上傳代碼

    使用git命令上傳代碼

    這篇文章介紹了使用git命令上傳代碼的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-03-03

最新評論