ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【串线篇】spring boot页面模板引擎

2019-12-24 14:54:58  阅读:289  来源: 互联网

标签:... object methods spring 串线 boot thymeleaf objects Expressions


如JSP、Velocity、Freemarker、Thymeleaf

 

 

SpringBoot推荐的Thymeleaf;语法更简单,功能更强大;

一、引入thymeleaf

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐thymeleaf</artifactId> 2.1.6
</dependency>
切换thymeleaf版本
<properties>
<thymeleaf.version>3.0.9.RELEASE</thymeleaf.version>
<!‐‐  布局功能的支持程序    thymeleaf3主程序    layout2以上版本  ‐‐>


<!‐‐  thymeleaf2   layout1‐‐>
<thymeleaf‐layout‐dialect.version>2.2.2</thymeleaf‐layout‐dialect.version>
</properties>

二、Thymeleaf使用

@ConfigurationProperties(prefix  =  "spring.thymeleaf")
public  class  ThymeleafProperties  {

private  static  final  Charset  DEFAULT_ENCODING  =  Charset.forName("UTF‐8");

private  static  final  MimeType  DEFAULT_CONTENT_TYPE  =  MimeType.valueOf("text/html"); 

public static final String DEFAULT_PREFIX = "classpath:/templates/"; public static final String DEFAULT_SUFFIX = ".html"; //

只要我们把HTML页面放在classpath:/templates/,thymeleaf就能自动渲染;

1、导入thymeleaf的名称空间

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

2、使用thymeleaf语法;

    <!DOCTYPE  html>
    <html  lang="en"  xmlns:th="http://www.thymeleaf.org">
    <head>
    <meta  charset="UTF‐8">
    <title>Title</title>
    </head>
    <body>
    <h1>成功!</h1>
    <!‐‐th:text 将div里面的文本内容设置为 ‐‐>
    <div th:text="${hello}">这是显示欢迎信息</div>
    </body>
    </html>

、语法规则

1)、th:text;改变当前元素里面的文本内容;

th:任意html属性;来替换原生属性的值

 

 

2)、表达式?

    Simple  expressions:(表达式语法)
    ========================================================================================
    1.Variable  Expressions:  ${...}:获取变量值;OGNL;
    1)、获取对象的属性、调用方法
    2)、使用内置的基本对象:

    #vars: the context variables.
    #locale : the context locale.
    #request  :  (only  in  Web  Contexts)  the  HttpServletRequest  object.
    #response  :  (only  in  Web  Contexts)  the  HttpServletResponse  object.
    #session  :  (only  in  Web  Contexts)  the  HttpSession  object.
    #servletContext  :  (only  in  Web  Contexts)  the  ServletContext  object. 12
                          ${session.foo}
    3)、内置的一些工具对象:
    #execInfo  :  information  about  the  template  being  processed.
    #messages  :  methods  for  obtaining  externalized  messages  inside  variables  expressions,  in  the same  way  as  they  would  be  obtained  using  #{…}  syntax.
    #uris  :  methods  for  escaping  parts  of  URLs/URIs
    #conversions  :  methods  for  executing  the  configured  conversion  service  (if  any).
    #dates  :  methods  for  java.util.Date  objects:  formatting,  component  extraction,  etc.
    #calendars  :  analogous  to  #dates  ,  but  for  java.util.Calendar  objects.
    #numbers  :  methods  for  formatting  numeric  objects.
    #strings  :  methods  for  String  objects:  contains,  startsWith,  prepending/appending,  etc.
    #objects  :  methods  for  objects  in  general.
    #bools  :  methods  for  boolean  evaluation.
    #arrays  :  methods  for  arrays.
    #lists  :  methods  for  lists.
    #sets  :  methods  for  sets.
    #maps  :  methods  for  maps.
    #aggregates  :  methods  for  creating  aggregates  on  arrays  or  collections.
    #ids  :  methods  for  dealing  with  id  attributes  that  might  be  repeated  (for  example,  as  a result of an iteration).
    ==========================================================================================

    2.Selection  Variable  Expressions:  *{...}:选择表达式:和${}在功能上是一样;
    补充:配合 th:object="${session.user}:
    <div th:object="${session.user}">
    <p>Name:  <span  th:text="*{firstName}">Sebastian</span>.</p>
    <p>Surname:  <span  th:text="*{lastName}">Pepper</span>.</p>
    <p>Nationality:  <span  th:text="*{nationality}">Saturn</span>.</p>
    </div> 39
    Message Expressions: #{...}:获取国际化内容
    Link  URL  Expressions:  @{...}:定义URL;
    @{/order/process(execId=${execId},execType='FAST')}
    Fragment  Expressions:  ~{...}:片段引用表达式
    <div  th:insert="~{commons  ::  main}">...</div> 45
    Literals(字面量)
    Text  literals:  'one  text'  ,  'Another  one!'  ,… 48    Number  literals:  0  ,  34  ,  3.0  ,  12.3  ,…
    Boolean literals: true , false
    Null  literal:  null
    Literal  tokens:  one  ,  sometext  ,  main  ,…
    Text operations:(文本操作)
    String concatenation: +
    Literal  substitutions:  |The  name  is  ${name}|
    Arithmetic  operations:(数学运算)

    Binary operators: + , ‐ , * , / , %


    Minus  sign  (unary  operator):  ‐
    Boolean operations:(布尔运算)
    Binary operators: and , or
    Boolean negation (unary operator): ! , not
    Comparisons  and  equality:(比较运算)
    Comparators:  >  ,  <  ,  >=  ,  <=  (  gt  ,  lt  ,  ge  ,  le  )
    Equality operators: == , != ( eq , ne )
    Conditional  operators:条件运算(三元运算符)
    If‐then: (if) ? (then)
    If‐then‐else: (if) ? (then) : (else)
    Default:  (value)  ?:  (defaultvalue)
    Special tokens:
    No‐Operation:  _

 

标签:...,object,methods,spring,串线,boot,thymeleaf,objects,Expressions
来源: https://www.cnblogs.com/yanl55555/p/12091454.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有