java自定義變量解析,Thymeleaf內置對象、定義變量、URL參數及標簽自定義屬性

如標題所述,這篇文章主要講述Thymeleaf中的內置對象(list解析、日期格式化、數字格式化等)、定義變量、獲取URL的參數和在頁面標簽中自定義屬性的應用。

如果對Thymeleaf的基本使用、maven依賴等不清楚的可以先閱讀我的另一篇文章《Thymeleaf 之 初步使用》。

Controller部份@Controller

public?class?IndexController?{

@GetMapping(value?=?"index")

public?String?index(Model?model,?HttpServletRequest?request)?{

List?datas?=?new?ArrayList();

datas.add("Form1");

datas.add("http://www.form1.cn");

datas.add("393156105");

model.addAttribute("datas",?datas);

model.addAttribute("curDate",?new?Date());

model.addAttribute("money",?Math.random()*100);

return?"index";

}

}

在這個控制器的Model中存放了這樣幾個數據:一個String類型的列表、一個日期對象和一個數值,這些東西在實際應用開發過程中應用非常廣泛,下面具體看一下在Thymeleaf中是如何解析這些數據的。

日期格式化

說明: 使用內置對象dates的format函數即可對日期進行格式化,在format函數中,第一個參數是日期對象,對二兩個參數為日期格式(規則跟SimpleDateFormat一樣)

需要注意的是:·?內置對象一般都以s結尾,如dates、lists、numbers等

·?在使用內置對象是在對象名前都需要加#號。

數字格式化

說明: 此示例表示保留兩位小數位,整數位自動;

說明: 此示例表示保留兩位小數位,3位整數位(不夠的前加0)

獲取列表長度

說明: 使用#lists.size來獲取List的長度。

獲取URL參數值

說明: 當訪問http://localhost:1105/index?page=5時頁面將會得到page對應的值:5。

定義變量

當前頁碼:

說明: 同樣,當訪問http://localhost:8888/index?page=5時,頁面將顯示:當前頁碼:5,說明用th:with來定義變量,多個用,號隔開,使用范圍在當前標簽內。

自定義標簽屬性

在Thymeleaf中可以使用th:加上標簽的任何屬性進行賦值,但有些時候會遇到自定義的屬性,再用th:加自定義的屬性則會無效。比如:需要對標簽增加objName和objId這樣的屬性,在非Thymeleaf情況下是這樣:

變量情況是:

在Thymeleaf下則是:

說明: 在頁面上查看源代碼可以看到:,說明自定義屬性用:th:attr,多個屬性用,隔開。

thymeleaf對于checked屬性的判斷對于屬性是有些特定值的,比如checked屬性,thymeleaf都采用bool值,比如th:checked=${user.isActive}

這里,user.isActive=false時應該checked是不會出現這個attr的。

總的來說thymeleaf是不錯的,但內聯不是太好用,經常js的alert的時候,不得不把后半個括號換一行,如alert("aaa"?+?/*[[#{message}]]*/'message');

這種情況,會把后面的);都刪掉所以只能寫成

alert("aaa"?+?/*[[#{message}]]*/'message'

);

內置對象

上面簡單描述了比較常用的dates、lists、numbers這幾個內置對象,在Thymeleaf還有很多的內置對象,像strings也非常常用,用法跟Java.lang.String類的用法一樣。

在Thymeleaf中的內置對象有:

#dates:日期格式化內置對象,具體方法可以參照java.util.Date;

#calendars:類似于#dates,但是是java.util.Calendar類的方法;

#numbers: 數字格式化;

#strings:字符串格式化,具體方法可以參照java.lang.String,如startsWith、contains等;

#objects:參照java.lang.Object;

#bools:判斷boolean類型的工具;

#arrays:數組操作的工具;

#lists:列表操作的工具,參照java.util.List;

#sets:Set操作工具,參照java.util.Set;

#maps:Map操作工具,參照java.util.Map;

#aggregates:操作數組或集合的工具;

#messages:操作消息的工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530272.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530272.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530272.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux php curl.so,linux中php如何安裝CURL擴展方法

如果php已經在系統編譯好,后來又需要添加新的擴展。一種方式就是重新完全編譯php,另一種方式就是單獨編譯擴展庫,以extension的形式擴展。下面以安裝curl擴展為例:1、下載curl安裝包。(我的php是4.4.4的,下載最新的cur…

matlab線性拉伸函數,采用線性變換對圖像的每一個像素灰度作線性拉伸-Read.PPT

采用線性變換對圖像的每一個像素灰度作線性拉伸-Read第4章 圖像增強(1) 4.1 圖像增強概述 圖像增強(image enhancement)的定義: 在圖像的獲取過程中,由于多種因素的影響,導致圖像質量退化。圖像增強是對退化圖像的某些特征,如邊緣…

php js 循環對象屬性,js 遍歷對象的屬性的代碼_javascript技巧

如:Function.prototype.addMethodfunction(methodName,func){if(!this.prototype[methodName]){this.prototype[methodName]func;//給原型增加方法,此方法會影響到該類型的實例上}return this.prototype;//返回原型,此類型實例可以進行鏈形調…

php連接數據庫navicat,navicat數據庫如何連接php

第一步,打開Navicat,新建數據庫。第二步,在數據庫中新建表。相關推薦:《Navicat for mysql使用圖文教程》第三步,保存表。第四步,表中添加數據。第五步,打開ide,輸入以下php代碼&…

每日一題:LCR 095.最長公共子序列(DP)

題目描述: 給定兩個字符串 text1 和 text2,返回這兩個字符串的最長 公共子序列 的長度。如果不存在 公共子序列 ,返回 0 。 一個字符串的 子序列 是指這樣一個新的字符串:它是由原字符串在不改變字符的相對順序的情況下刪除某些…

php自動合并,php實現合并數組并去除重復的方法

php實現合并數組并去除重復的方法發布時間:2020-08-12 10:35:05來源:億速云閱讀:99作者:小新這篇文章主要介紹了php實現合并數組并去除重復的方法,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這…

oracle存儲數據方式,Oracle 數據類型及存儲方式

Oracle 數據類型及存儲方式袁光東 原創概述通過實例,全面而深入的分析oralce的基本數據類型及它們的存儲方式。以ORACLE 10G為基礎,介紹oralce 10g引入的新的數據類型。讓你對oracle數據類型有一個全新的認識。揭示一些不為人知的秘密和被忽略的盲點。從…

oracle的一些基本操作,Oracle中的一些基本操作

關于Oracle中的一些基本操作,包括表空間操作,用戶操作,表操作1 --創建表空間2 create tablespace itheima3 datafile I:\oracle\table\itheima.dbf4 size 100m5 autoextend on6 next 10m;7 --刪除表空間8 drop tablespace itheima;910 --創建…

oracle全局批準供應商,Oracle EBS-SQL (PO-7):檢查異常-非批準的供應商設置供貨比例.sql...

select distinctmsr.sourcing_rule_name 名稱,msi.description 說明,msi.item_type 類型,msi.inventory_item_status_code 狀態,msr.planning_active 計劃生效,msro.effective_date 有…

linux 臨時文件 鎖,linux – 無法使用文件描述符flock鎖定文件

您正在使用-n,如果無法立即獲取鎖定將終止,并且flock將以退出代碼1失敗.因此,在第一個終端中執行代碼后,它會休眠100秒.接下來當你在另一個終端中執行相同的操作時,flock會失敗并返回1,但是因為有一個;并且您不對返回代碼執行任何操作,shell只是繼續執行下一個語句并休眠100秒.…

linux內核運行關系圖,一張圖看懂Linux內核運行交互關系

很多朋友如果接觸過Linux的都知道Kernel的含義,kernel是操作系統的核心或者最重要的部分。眾所周知的是,幾乎整個互聯網都運行在 Linux上,從網絡協議,到服務器,到你平常訪問的絕大多數網站,都能看到它的身…

win7下訪問linux文件權限,linux中文件的權限

一、文件的基本權限權限:r, w, x對于文件來講,r::可讀,可以使用類似cat等命令查看文件內容;w:可寫,可以編輯或刪除此文件;x:可執行,exacutable,可以命令提示符下當作命令…

linux頭文件怎么編譯,microsoft編譯器怎么使用Linux頭文件

microsoft編譯器如何使用Linux頭文件?#include #include #include #include #include #include #include #include #include #include #include #include #include 分享到:------解決方案--------------------windows 對應 上面頭文件 是哪個呀?引用:一般都是網絡…

linux程序多少位,查看linux版本是多少位

1 查看內核版本:1)[rootLinux download]# cat /proc/versionLinux version 2.6.18-194.el5 (mockbuildbuilder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Fri Apr 2 14:58:35 EDT 20102)[rootLinux download]# uname -aLinux Linux 2.…

linux內核bios,BIOS的啟動原理——Linux內核設計學習筆記

RAM:隨機存取存儲器,常見的內存條就是一類RAM,其特點是加電狀態下可任意讀、寫,斷電后信息消失。在RAM中什么程序也沒有的時候,誰來完成加載軟盤中操作系統的任務呢?答案是:BIOS。BIOS的啟動原理…

zabbix監控linux網卡流量,zabbix實現linux流量變化率監控

監控軟件:zabbix需求分析:從系統層面的監控看,現在CPU持續超過80%會報警,流量曲線達到閥值才會報警,但是流量在短時間內起伏很大,肯定是有問題的,目前主要還是依靠人看,肯定有滯后性…

Linux下仿windows任務管理器,開源任務管理器 Process Hacker (Windows)

Windows表面上沒有工作在進行中,但不知為何負荷很重,究竟有什么進程在執行?會不會是系統已經被入侵?這是很多人都想知道的問題。但Windows自帶的任務管理員實在太過簡陋,解決辦法便是安裝這次介紹的Process Hacker。熟…

linux軟件工程師筆試題,C/C++軟件工程師筆試題

1,程序設計(可以用自然語言來描述,不編程):C/C源代碼中,檢查花括弧(是“(”與“)”,“{”與“}”)是否匹配,若不匹配,則輸出不匹配花括弧所在的行與列。2,巧排數字,將1,2…

嵌入式linux中的鎖機制,跟濤哥一起學嵌入式第11集:一個實現鎖機制非常有意思的宏...

QQ群(宅學部落)有位學員問了一個很奇怪的宏,覺得很有意思,特拿來分享,它的定義如下:我們知道,宏定義其實就是為了方便,給一串代碼字符串定義一個別名。有時候字符串過于復雜,我們可以分多行書寫&#xff0c…

linux 制作box文件夾,用busybox制作自己簡易的根文件系統

當使用Busybox-1.2.0制作根文件系統交叉編譯器為3.3.2make-3.8.1STEP 1:創建根文件系統目錄,主要包括以下目錄/bin,/etc,/dev,/mnt,/sbin,/usr。STEP 2:升級make到3.81版本&#xff…