[String line articles] spring boot page template engine

如JSP、Velocity、Freemarker、Thymeleaf

 

 

SpringBoot recommended Thymeleaf; grammar is simpler, more powerful;

First, the introduction of thymeleaf

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐starter‐thymeleaf</artifactId> 2.1.6
</dependency>
Switching thymeleaf version
< The Properties > 
< thymeleaf.version > 3.0.9.RELEASE </ thymeleaf.version > 
<! - layout features support program thymeleaf3 main layout2 or later - >


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

Two, Thymeleaf use

@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"; //

As long as we put HTML pages on the classpath: / templates /, thymeleaf will automatically rendered;

1, import thymeleaf namespace

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

2, thymeleaf syntax;

    <!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</This is a welcome message>
    </body>
    </html>

Three , grammar rules

1), th: text; change the contents of the current text element inside;

th: any html attribute; replacing native attribute value

 

 

2) the expression?

    Simple expressions :( expression syntax)
    ========================================================================================
    1.Variable Expressions: $ {...}: value of acquisition variable; the OGNL;
    1) to obtain the object's properties, invoke methods
    2) using the built-in basic object:

    #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), some of the built-in tools for:
    #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:  _

 

Guess you like

Origin www.cnblogs.com/yanl55555/p/12091454.html