thymeleaf的基本应用入门简介

小伙伴们大家好,今天给大家讲解下thymeleaf的基本使用入门简介,由于网上的教程都比较杂乱,导致很多朋友看了都不太懂,这篇文章里有详细的教程告诉你,让新手朋友看了都能很容……

朋友们小伙伴们好,今儿给大伙儿解读下thymeleaf的基本上应用入门简介,考虑到在网上的教学都较为混乱,致使许多好朋友看过都搞不懂,本文里有详尽的步骤对你说,让新人好朋友看过都可以非常容易懂!

thymeleaf基本使用入门简介,thymeleaf入门,thymeleaf简介

thymeleaf,我个人认为是个比较好的模板,特性也比一般的,例如freemaker的要高,并且把将美工设计和程序猿可以结合在一起,美工设计可以在浏览器中查询静态数据实际效果,软件工程师能够在网站服务器查询带数据的实际效果。

thymeleaf是一个适用html原形的当然模块,它在html标签提升附加的属性来做到模板 数据的展示方式,因为电脑浏览器表述html时,忽视未声明的标识属性,因而thymeleaf的模板能够静态数据运作。

因为thymeleaf在运行内存缓存文件分析后的模板,分析后的模板是根据tree的dom连接点树,因而thymeleaf适用一般的web页面,不适宜根据数据的xml。

thymeleaf 的context,即给予数据的地区,基于web的context,即WebContext相对context提升 param,session,application变量,而且全自动将request atttributes加上到context variable map,能够在模板直接访问。

在模板解决前,thymeleaf还会继续提升一个变量execInfo,例如${execInfo.templateName},${execInfo.now}等。

数据浏览方式:

${…},变量引入方式,例如${myBean.property},假如用springDialect,则采用的是spring EL,如果不用spring,则用的ognl。

*{…},挑选关系式,一般是th:object以后,立即取object里的属性。当并没有选择目标时,其作用等同于${…},*{firstName}也等同于${#object.firstName},#object代表现阶段挑选的目标。

@{…}连接url的关系式。th:href="@{/xxx/aa.do(id=${o.id})",会全自动开展url-encoding的解决。@{…}内部结构可以是必须测算的关系式,例如:

th:href=”@{'/details/' ${user.login}(orderId=${o.id})}"#{…},i18n,全球化。

应注意的:

#{${welcomeMsgKey}(${session.user.name})}:i18n message适用团块。每个关系式适用嵌入。

关系式基本上目标:

#ctx:context object

#root或是#vars

#locale

#httpServletRequest

#httpSession

关系式作用目标:

#dates:java.util.Date的作用方式类。

#calendars:相近#dates,面对java.util.Calendar

#numbers:恢复出厂设置数字的作用方式类。

#strings:字符串数组目标的作用类,contains,startWiths,prepending/appending这些。

#objects:对objects的作用类实际操作。

#bools:对布尔值求值的作用方式。

#arrays:对字符串的作用类方式。

#lists:对lists作用类方式

#sets

#maps

#aggregates:对二维数组或是结合建立汇聚的作用方式,

th:text="${#aggregates.sum(o.orderLines.{purchasePrice * amount})}"

#messages:在变量关系式中获得外界消息的作用类方式。

#ids:解决很有可能反复的id属性的作用类方式。

标准实际操作:

(if)?(then):符合条件,实行then。

(if)?(then):(else)

(value)?:(defalutValue)

一些标识:

th:text="${data}",将data的值更换该属性所属标识的body。字符常量得用冒号,例如th:text="'hello world'",th:text="2011 3",th:text="'my name is ' ${user.name}"

th:utext,和th:text的差别是"unescaped text"。

th:with,界定变量,th:with="isEven=${prodStat.count}%2==0",界定好几个变量能用逗号分隔。

th:attr,设定标识属性,好几个属性能用逗号分隔,例如th:attr="src=@{/image/aa.jpg},title=#{logo}",此标识不太雅致,一般用的比较多。

th:[tagAttr],设定标识的每个属性,例如th:value,th:action等。

能够一次设定2个属性,例如:th:alt-title="#{logo}"

对属性提升作为前缀和后缀名,用th:attrappend,th:attrprepend,例如:th:attrappend="class=${' ' cssStyle}"

针对属性是有一些特殊值的,例如checked属性,thymeleaf都选用bool值,例如th:checked=${user.isActive}

th:each, 循环系统,<tr th:each="user,userStat:${users}">,userStat是情况变量,有 index,count,size,current,even,odd,first,last等属性,要是没有显示设置情况变量,thymeleaf会默 认给个“变量名 Stat"的情况变量。

th:if or th:unless,条件判断,适用布尔值,数据(非零为true),标识符,字符串数组等。

th:switch,th:case,挑选句子。 th:case="*"表明default case。

th:fragment,th:include,th:substituteby:fragment为精彩片段标识,特定一个模板内一部分编码为一个片段,之后在其他的网页页面中用th:include或th:substituteby开展包括。

包括的形式为,文件格式内还可以为关系式,例如th:include="footer::$(user.logined)?'logined':'notLogin'":

"templatename::fragname",特定模板里的特定精彩片段。

"templateName::[domselector]",特定模板的dom selector,被包括的模板内不用th:fragment.

”templatename",包括全部模板。

th:include和th:substituteby的差别就在于前面一种包括精彩片段的具体内容到现阶段标识内,后面一种要用全部精彩片段(具体内容和上一层)更换现阶段标识(不仅是标签内容)。

th:remove="all|body|tag|all-but-first",一般用以将mock数据在真正环境中清除,all表示清除标识及其标签内容,body只清除具体内容,tag只清除隶属标识,不清除具体内容,all-but-first,除第一条外其他不清除。

由 于一个标识内能够包括多个th:x属性,其顺序为:include,each,if/unless/switch/case,with,attr /attrprepend/attrappend,value/href,src ,etc,text/utext,fragment,remove。

内联文字:[[…]]内联文字的表述方法,使用时,务必先用th:inline="text/javascript/none"激话,th:inline能够在父级标识内应用,乃至做为body的标识。内联文字虽然比th:text的编码少,可是不益于原形表明。

内联js:

<scriptth:inline="javascript">

/*<![CDATA[*/

var username = /*[[${sesion.user.name}]]*/ 'Sebastian';

/*]]>*/

</script>

js额外编码:

/*[

var msg = 'This is a working application';

]*/

js清除编码:

/*[- */

var msg = 'This is a non-working template';

/* -]*/

模版缓存文件:

1、特定特殊的缓存文件:

templateResolver.setCacheable(false);

templateResolver.getCacheablePatternSpec().addPattern("/users/*");

2、清理缓存:

templateEngine.clearTemplateCache();

templateEngine.clearTemplateCacheFor("/users/userList");

填补点url专业知识:

1、相对路径:http://news.sina.com.cn

2、绝对路径:

2.1:网页页面绝对路径,一般指相对性现阶段要求的url,例如 aa.do

2.2:前后文相对性,例如/xxx/aa.do

2.3:网络服务器绝对路径,例如~/other/xxx/aa.do,容许转换到同样网络服务器不一样前后文的途径。

假如上边你还没有看懂得话,我都准备了此外一份材料,我希望能够协助到你!

1. Thymeleaf简述

Thymeleaf是一个Java模板模块,适用html、xml、text、javascript、css、raw这几种实体模型。

应用Thymeleaf最先需要引进类名javascript

<html xmlns:th="http://www.thymeleaf.org">

2. 基本上操作方法

引用web静态资源

Thymeleaf通过”@{}”来引用web静态资源,比如:

<script th:src="@{bootstrap/js/boostrap.min.js}"></script>

浏览model实体模型里的数据信息,比如浏览一个user目标的name特性

<span th:text="${user.name}"></span>

数据信息迭代更新

比如迭代更新一个userlist集合

<tr th:each="user : ${userlist}">

<td th:text="${user.name}">tyrone</td>

<td th:text="${user.age}">18</td>

</tr>

使用th:each作循环系统迭代更新,并应用${目标.特性}来浏览实际的值css

分辨是不是为空

<tr th:if="${messages.empty}">

<td colspan="3">No messages</td>

</tr>

在Javascript中浏览model模型数据。

<script th:inline="javascript">

var user = [[${user}]]

console.log(user.name "\\t" user.age);

</script>

通过加上th:inline=”javascript”到script标签来浏览model模型数据。

通过”[[${}]]”这类文件格式来获得实际的值html。

好啦,之上便是给大伙儿提前准备的关于thymeleaf 基本上应用新手入门介绍【详尽实例教程】的材料了,希望你用心看了能有所收获哈!

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。 如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。
返回顶部