zoukankan      html  css  js  c++  java
  • 【串线篇】spring boot页面模板引擎

    如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:  _
  • 相关阅读:
    MFC OnOk(),OnCancel(),OnClose(),OnDestroy()的区别总结
    MFC中的Invalidate、OnDraw、OnPaint函数的作用
    MFC中和定时器使用
    SwapBuffers的等待,虚伪的FPS(转)
    OpenGl常用函数说明
    Win7_Ultimate + VS2010 + openGL_MFC单文档应用开发框架搭建步骤
    OpenGL模型视图变换、投影变换、视口变换的理解
    不同电脑的开机启动项
    第一百二十三节,JavaScript错误处理与调试
    第一百二十二节,JavaScript表单处理
  • 原文地址:https://www.cnblogs.com/yanl55555/p/12091454.html
Copyright © 2011-2022 走看看