第六章:thymeleaf頁面模版-7. 數據處理

在 thymeleaf 之中提供有相應的集合的處理方法,例如:在使用 List 集合的時候能夠考慮採用 get()方法獲取指定索引的數據,那麼在使用 Set 集合的時候會考慮使用 contains()來判斷某個數據是否存在,使用 Map 集合的時候也但願可使用 containsKey()判斷某個 key 是否存在,以及使用get()根據 key 獲取對應的 value,而這些功能在以前並不具有,下面來觀察如何在頁面中使用此類操做.javascript

1.經過map集合獲取信息html

<p th:text="${#maps.containsKey(allMembers,'mldn-7')}"/>
	<p th:text="${allMembers['mldn-7'].name}"/>

 

member_map.htmljava

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
	<title>SpringBoot模版渲染</title>
	<script type="text/javascript" th:src="@{/js/main.js}"></script> 
	<link rel="icon" type="image/x-icon" href="/images/mldn.ico"/>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
</head>
<body>
	<p th:text="${#maps.containsKey(allMembers,'mldn-7')}"/>
	<p th:text="${allMembers['mldn-7'].name}"/>
	<hr/>
	<table>
		<tr><td>No.</td><td>KEY</td><td>MID</td><td>姓名</td><td>年齡</td><td>偶數</td><td>奇數</td></tr>
		<tr th:each="memberEntry,memberStat:${allMembers}">
			<td th:text="${memberStat.index + 1}"/>
			<td th:text="${memberEntry.key}"/>
			<td th:text="${memberEntry.value.mid}"/>
			<td th:text="${memberEntry.value.name}"/>
			<td th:text="${memberEntry.value.age}"/>
			<td th:text="${memberStat.even}"/>
			<td th:text="${memberStat.odd}"/>
		</tr>
	</table>
</body>
</html>

2.判斷某一個數據是否存在web

創建一個控制器的方法,該方法返回一個set集合的內容spring

package cn.mldn.microboot.controller;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import cn.mldn.microboot.util.controller.AbstractBaseController;
import cn.mldn.microboot.vo.Member;

@Controller
public class MemberController extends AbstractBaseController {
	@RequestMapping(value = "/member/set", method = RequestMethod.GET)
	public String set(Model model) {
		Set<String> allNames = new HashSet<String>() ;
		Set<Integer> allIds = new HashSet<Integer>() ;
		for (int x = 0 ; x < 5 ; x ++) {
			allNames.add("mldn-" + x) ;
			allIds.add(x) ;
		}
		model.addAttribute("names", allNames) ;
		model.addAttribute("ids", allIds) ;
		return "member/member_set" ;
	}
}

創建一些頁面進行一些數據的處理操做:app

<p th:text="${#sets.contains(names,'mldn-0')}"/>
	<p th:text="${#sets.contains(names,'mldn-9')}"/>
	<p th:text="${#sets.size(names)}"/>
<p th:text="${#sets.contains(ids,0)}"/>

3.若是說這個時候所返回的集合不是set集合,而是list集合,只須要將"#sets"更換爲"#lists"便可。jsp

創建一個控制器:ui

@RequestMapping(value = "/member/set", method = RequestMethod.GET)
	public String set(Model model) {
		Set<String> allNames = new HashSet<String>() ;
		List<Integer> allIds = new ArrayList<Integer>() ;
		for (int x = 0 ; x < 5 ; x ++) {
			allNames.add("mldn-" + x) ;
			allIds.add(x) ;
		}
		model.addAttribute("names", allNames) ;
		model.addAttribute("ids", allIds) ;
		return "member/member_set" ;
	}

若是真進行了修改集合類型的修改實際上發現所進行頁面操做也一樣保持不變。並且能夠發如今頁面之中均可以根據索引取得了,而不關心你是set集合仍是list集合設計

<p th:text="${ids[1]}"/>
	<p th:text="${names[1]}"/>

4.在進行數據處理的時候字符串數據也是一個常見類型,因此在thymeleaf之中也支持有字符串的處理操做。code

<p th:text="${#strings.replace('www.mldn.cn','.','$')}"/>
	<p th:text="${#strings.toUpperCase('www.mldn.cn')}"/>
	<p th:text="${#strings.trim('www.mldn.cn')}"/>

5.日期格式化

@RequestMapping(value = "/member/set", method = RequestMethod.GET)
	public String set(Model model) {
		Set<String> allNames = new HashSet<String>() ;
		List<Integer> allIds = new ArrayList<Integer>() ;
		for (int x = 0 ; x < 5 ; x ++) {
			allNames.add("mldn-" + x) ;
			allIds.add(x) ;
		}
		model.addAttribute("names", allNames) ;
		model.addAttribute("ids", allIds) ;
		model.addAttribute("mydate", new java.util.Date()) ;
		return "member/member_set" ;
	}
<p th:text="${#dates.format(mydate,'yyyy-MM-dd')}"/>
	<p th:text="${#dates.format(mydate,'yyyy-MM-dd HH:mm:ss.SSS')}"/>

能夠發現模板的頁面設計真的要比傳統的jsp強大許多。

相關文章
相關標籤/搜索