朋友们小伙伴们好,今儿给大伙儿解读下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 基本上应用新手入门介绍【详尽实例教程】的材料了,希望你用心看了能有所收获哈!