那标记我们预料要分析的沙盘会渲染成HTML 5输出

2019-10-06 01:54 来源:未知
法则表明式
 <div th:if="${ifs}"> wei真就可以展示内容 </div>

th:if不止决断再次回到为true的表明式,还断定一些出奇的表明式。

如果值非NULL得话返回true: 如果值是boolean类型并为TURE. 如果值是数值型并不为0. 如果值是字符型并不为空. 如果值是字符型并且内容不为“false”, “off” 或者 “no”。 如果值不是上述类型。如果值是NULL得话返回false;

循环

第二个参数称作状态变量,属性有

  • index:当前迭代目的的index(从0初始企图)
  • count: 当前迭代目的的index(从1从头盘算)
  • size:被迭代对象的尺寸
  • current:当前迭代变量
  • even/odd:布尔值,当前巡回是还是不是是偶数/奇数(从0初叶臆度)
  • first:布尔值,当前巡回是不是是第三个
  • last:布尔值,当前轮回是还是不是是最后一个

    index id name age
    1 1 王五 55

简单易行说, Thymeleaf 是二个跟 Velocity、FreeMarker类似的模板引擎,它能够完全代表 JSP 。相较与任何的沙盘引擎,它有如下四个极吸引人的天性:

图片 1图片.png

springboot简化配置

自然在springboot中,下边包车型地铁视图分析器等登记都不必要咱们做了,因为springboot都默许帮我们做了,(只要大家将Thymeleaf maven重视增加到项目标pom文件下,就启用了Spring Boot的自行配置。当使用运维时,Spring Boot将会探测到类路线中的Thymeleaf,然后会自动配置视图分析器、模板解析器以及模板引擎)

即使什么都不安顿,springboot会暗中认可查找类跟目录下的templates文件夹下的模板,home.html放到src/main/ resources/templates目录下

图片 2

要是大家要在home的html中引进一些静态能源怎么做呢,那一点springboot也帮我们驰念到了

springboot它会将“/**”映射到多少个财富路线中

  • META-INF/resources/
  • resources
  • static
  • public

也正是说大家在有二个static/css/home.css

那么大家这么引进就能够了。

<link type="text/css" rel="stylesheet" th:href="@{/css/home.css}"></link>

自然,我们还是得以安顿前缀后缀,以及是或不是缓存等,只供给一个大致的配置就可以

#配置前缀
#spring.thymeleaf.prefix=classpath:/templates/  
#配置后缀
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.mode=HTML5 
#spring.thymeleaf.encoding=UTF-8 
#spring.thymeleaf.content-type=text/html 
#是否开启缓存
spring.thymeleaf.cache=false 

 

它们分为四类:

@{...} 链接url表达式

Utilities

Utilities为了模板特别易用,Thymeleaf还提供了一名目好多Utility对象(内置于Context中),能够经过#直白访谈

- dates : java.util.Date的功效方法类。

  • calendars : 类似#dates,面向java.util.Calendar
  • numbers : 格式化数字的效果与利益方法类
  • strings : 字符串对象的作用类,contains,startWiths,prepending/appending等等。
  • objects: 对objects的功用类操作。
  • bools: 对布尔值求值的功效方法。
  • arrays:对数组的功力类格局。
  • lists: 对lists效率类措施
  • sets
  • maps

表明式基本指标

  • #ctx: 上下文对象.
  • #vars: context中的变量们.
  • #locale: context中的locale.
  • #httpServletRequest: (只在web context中) HttpServletRequest对象.
  • #httpSession: (只在web context中) HttpSession对象.

    将date渲染成前边的格式 ${#dates.format(date, 'dd/MMM/yyyy HH:mm')} 获得当前时光 ${#dates.createNow()} 得到当前岁月并出示

 utilities别的应用链接,很详细

  • 1.变量表明式
  • 2.抉择或星号表明式
  • 3.文字国际化表明式
  • 4.URL表达式
格式化
 <p th:text="${#calendars.format(today,'yyyy-MM-dd HH:mm:ss')}">时间</p>

保留两位小数

常用标签

图片 3


 

1、赋值、字符串拼接

 <p th:text="${collect.description}">description</p> 

字符串拼接还会有别的一种精简的写法

Thymeleaf模板Spring boot 官方推荐应用来替代jsp,是一款用于渲染XML / XHTML / HTML5内容的模板引擎。类似JSP,Velocity,FreeMaker等,它也得以轻易的与Spring MVC等Web框架进行集成作为Web应用的模版引擎。与别的模板引擎相比较,Thymeleaf最大的风味是能力所能达到一直在浏览器中开辟并不错展现模板页面,而无需运转全套的Web应用它的功能特色如下:

嵌套

在时下home.html路线下有个footer.html,内容如下

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
  <body>
    <footer th:fragment="copy">
      &copy; 2011 The Good Thymes Virtual Grocery
    </footer>
  </body>
</html>

在home.html引用这一个footer,footer代表html的称谓,copy代表fragmen的值

<div th:replace="footer:: copy"></div>
<div th:include="footer:: copy"></div>

表现的源码:

<footer>
    &copy; 2011 The Good Thymes Virtual Grocery
</footer>
<div>
    &copy; 2011 The Good Thymes Virtual Grocery
</div>

得出结论:
 - th:replace会将最近div整个替换来foot的成分
 - th:include只是将footer里面的源委拷贝进来


3、for 循环

 <tr th:each="collect,iterStat : ${collects}"> <th scope="row" th:text="${collect.id}">1</th> <td > ![](${collect.webLogo}) </td> <td th:text="${collect.url}">Mark</td> <td th:text="${collect.title}">Otto</td> <td th:text="${collect.description}">@mdo</td> <td th:text="${terStat.index}">index</td> </tr>

iterStat称作状态变量,属性有:

  • index:当前迭代指标的index
  • count: 当前迭代指标的index
  • size:被迭代对象的轻重
  • current:当前迭代变量
  • even/odd:布尔值,当前循环是或不是是偶数/奇数
  • first:布尔值,当前巡回是或不是是第二个
  • last:布尔值,当前巡回是或不是是最后三个

*{...} 采用变量表明式

Switch

* 代表default,其余都没相称到会展现带*的

<div th:switch="${user.role}">
  <p th:case="'admin'">用户是管理员</p>
  <p th:case="*">用户是普通人员</p>
</div>

URL表达式

U汉兰达L表明式指的是把三个立竿见影的上下文或回应音信增多到USportageL,那个历程一时被叫做U君越L重写。@{/order/list} U翼虎L还足以设置参数:@{/order/details(id=${orderId})} 相对路径:@{../documents/report}

让大家看那几个表明式:

 <form th:action="@{/createOrder}"> <a href="main.html" th:href="@{/main}">

图片 4图片.png

none inlining

可是假诺笔者么就要呈现[[${user.name}]]没有须要他转移呢,就能够用到none inlining

[[${user.name}]]

 


在上篇小说springboot:web综合支出中简易介绍了须臾间thymeleaf,那篇文章将越是健全详细的介绍thymeleaf的选用。thymeleaf 是新一代的模板引擎,在spring4.0中推荐使用thymeleaf来做前端模版引擎。

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>配置测试</title></head><body> <h1>hello thymeleaf </h1> <h2>测试中文</h2> <h3 th:text="${ting}"/></body></html>

Text inlining

后面[[]]在那之中的值是从域中获得的text文本,跟使用th:text效果类似

[[${user.name}]]

表明式帮助的语法

  • 文件文字(Text literals): 'one text', 'Another one!',…
  • 数字文本(Number literals): 0, 34, 3.0, 12.3,…
  • 布尔文本(Boolean literals): true, false
  • 空(Null literal): null
  • 文字标志(Literal tokens): one, sometext, main,…
  • 字符串连接(String concatenation): +
  • 文本替换(Literal substitutions): |The name is ${name}|
  • 二元运算符(Binary operators): +, -, *, /, %
  • 减号Minus sign (unary operator): -
  • 二元运算符(Binary operators):and, or
  • 布尔否定Boolean negation (unary operator):!, not
  • 比较(Comparators): >, <, >=, <= (gt, lt, ge, le)
  • 等值运算符(Equality operators):==, !=
  • If-then: ?
  • If-then-else: ? :
  • Default: ?: (defaultvalue)

具有这么些特征能够被整合併嵌套:

'User is of type ' + (${user.isAdmin()} ? 'Administrator' : (${user.type} ?: 'Unknown'))
关键字 功能介绍 案例
th:id 替换id <input th:/>
th:text 文本替换 <p th:text="${collect.description}">description</p>
th:utext 支持html的文本替换 <p th:utext="${htmlcontent}">conten</p>
th:object 替换对象 <div th:object="${session.user}">
th:value 属性赋值 <input th:value="${user.name}" />
th:with 变量赋值运算 <div th:with="isEven=${prodStat.count}%2==0"></div>
th:style 设置样式 th:style="'display:' + @{(${sitrue} ? 'none' : 'inline-block')} + ''"
th:onclick 点击事件 th:onclick="'getCollect()'"
th:each 属性赋值 tr th:each="user,userStat:${users}">
th:if 判断条件 <a th:if="${userId == collect.userId}" >
th:unless 和th:if判断相反 <a th:href="@{/login}" th:unless=${session.user != null}>Login</a>
th:href 链接地址 <a th:href="@{/login}" th:unless=${session.user != null}>Login</a> />
th:switch 多路选择 配合th:case 使用 <div th:switch="${user.role}">
th:case th:switch的一个分支 <p th:case="'admin'">User is an administrator</p>
th:fragment 布局标签,定义一个代码片段,方便其它地方引用 <div th:fragment="alert">
th:include 布局标签,替换内容到引入的文件 <head th:include="layout :: htmlhead" th:with="title='xx'"></head> />
th:replace 布局标签,替换整个标签到引入的文件 <div th:replace="fragments/header :: title"></div>
th:selected selected选择框 选中 th:selected="(${xxx.id} == ${configObj.dd})"
th:src 图片类地址引入 ![](@{/img/logo.png})
th:inline 定义js脚本可以使用变量 <script type="text/javascript" th:inline="javascript">
th:action 表单提交的地址 <form action="subscribe.html" th:action="@{/subscribe}">
th:remove 删除某个属性 <tr th:remove="all"> 1.all:删除包含标签和所有的孩子。2.body:不包含标记删除,但删除其所有的孩子。3.tag:包含标记的删除,但不删除它的孩子。4.all-but-first:删除所有包含标签的孩子,除了第一个。5.none:什么也不做。这个值是有用的动态评估。
th:attr 设置标签属性,多个属性可以用逗号分隔 比如 th:attr="src=@{/image/aa.jpg},title=#{logo}",此标签不太优雅,一般用的比较少。

再有比比较多的竹签,这里只列出最常用的多少个,由于三个标签内能够富含八个th:x属性,其收效的前期级依次为:include,each,if/unless/switch/case,with,attr/attrprepend/attrappend,value/href,src ,etc,text/utext,fragment,remove。

TAG标签:
版权声明:本文由www.129028.com-澳门金沙唯一官网www129028com发布于编程新闻,转载请注明出处:那标记我们预料要分析的沙盘会渲染成HTML 5输出