zoukankan      html  css  js  c++  java
  • Thymeleaf入门基础

    一.简介
      1.thymeleaf优点
        ①是一个支持html原型的自然引擎,它在html标签增加额外的属性来达到模板+数据的展示方式,由于浏览器解释html时,忽略未定义的标签属性,因此thymeleaf的模板可以静态运行。;当有数据返回到页面时,Thymeleaf 标签会动态地替换掉静态内容,使页面动态显示。
        ②提供标准和spring标准两种方言,可以直接套用模板实现JSTL、OGNL表达式效果,同时开发人员也可以扩展和创建自定义的方言。
        ③提供spring标准方言和一个与SpringMVC 完美集成的可选模块,可以快速的实现表单绑定、属性编辑器等功能
      2.模板样式
        允许使用六种模板,每个被称为一种模板模式:HTML、XML、TEXT、JAVASCRIPT、CSS、RAW。这其中有两种标记语言模板模式(HTML,XML),三种文本语言模板模式(TEXT,JAVASCRIPT,CSS),和一种无操作模板模式(RAW)
      3.官网地址:http://www.thymeleaf.org
    二.集成方式
      1.thymeleaf + SpringMVC
        ❶引入相应jar包


        ❷在xml中配置thymeleaf视图解析器


        ❸传统jsp开发采用SpringMVC的视图解析器


        ❹集成了Spring 3.x 和Spring 4.x 根据需要选择不同的jar包
      官网地址:http://www.thymeleaf.org/doc/tutorials/3.0/thymeleafspring.html
      2.thymeleaf + SpringBoot
        ❶引入相应jar包


        ❷在yml中配置thymeleaf视图解析器


      3.HTML头文件格式

    三.标准表达式语法
    1.支持语法

    • 简单表达式:
    1. 变量表达式: ${...}
    2. 选择变量表达式: *{...}
    3. 消息表达式: #{...}
    4. 链接URL表达式: @{...}
    5. 片段表达式: ~{...}
    • 字面
    1. 文本文字:'one text','Another one!',...
    2. 号码文字:0,34,3.0,12.3,...
    3. 布尔文字:true,false
    4. 空文字: null
    5. 文字标记:one,sometext,main,...
    6. 文字操作:
    7. 字符串连接: +
    8. 文字替换: |The name is ${name}|
    • 算术运算:
    1. 二元运算符:+,-,*,/,%
    2. 减号(一元运算符): -
    • 布尔运算:
    1. 二元运算符:and,or
    2. 布尔否定(一元运算符): !,not
    • 比较和平等:
    1. 比较:>,<,>=,<=(gt,lt,ge,le)
    2. 平等运营商:==,!=(eq,ne)
    • 有条件的操作符:
    1. IF-THEN: (if) ? (then)
    2. IF-THEN-ELSE: (if) ? (then) : (else)
    3. 默认: (value) ?: (defaultvalue)
    • 特殊令牌:
    1. 无操作: _

    2.变量表达式


    3.选择表达式(也叫星号表达式)


    4.文字国际化表达式
      从一个外部文件获取区域文字信息(.properties)。
      th:text:转义HTML代码
      th:utext:不会转义HTML代码


    5.URL表达式
      绝对路径:@{ http://www.thymeleaf.org}
      相对路径:@{/order/{id}/details(id=${orderId})}
    6.内联js
      引入 th:inline="javascript"
      [[***]]:转义HTML代码
      [(***)]:不会转义HTML代码


    7.模板布局(片段引用)
      引入 th:fragment 或者直接使用选择器
      th:insert:插入指定的片段作为其主机标签的主体
      th:replace:用指定的片段来替换它的主机标签
      th:include:只是插入这个片段的内容


    8.常用th标签


    9.表达式工具对象
      #execInfo:关于正在处理的模板的信息。
      #messages:在变量表达式中获得外部化消息的方法,与使用#{...}语法获得的方式相同。
      #uris:用于转义URL / URI部分的方法
      #conversions:执行配置的转换服务的方法(如果有的话)。
      #dates:针对java.util.Date对象的方法,包括日期格式化等
      #calendars:类似于#dates,但是对于java.util.Calendar对象。
      #numbers:针对numeric对象格式化的方法。
      #strings:针对String对象的方法:contains,startsWith,prepending / appending等
      #objects:针对object的方法。
      #bools:针对boolean运算的方法。
      #arrays:针对数组的方法。
      #lists:针对List的方法。
      #sets:针对Set的方法。
      #maps:针对Map的方法。
      #aggregates:在数组或集合上创建聚合的方法。
      #ids:处理可能重复的id属性的方法(例如,作为迭代的结果)。
        例如:
          dates
            ${#dates.format(date, 'dd/MMM/yyyy HH:mm')}
            ${#dates.arrayFormat(datesArray, 'dd/MMM/yyyy HH:mm')}
            ${#dates.listFormat(datesList, 'dd/MMM/yyyy HH:mm')}
            ${#dates.setFormat(datesSet, 'dd/MMM/yyyy HH:mm')}
            ${#dates.createNow()}
            ${#dates.createToday()}
          strings
            ${#strings.isEmpty(name)}
            ${#strings.arrayIsEmpty(nameArr)}
            ${#strings.listIsEmpty(nameList)}
            ${#strings.setIsEmpty(nameSet)}
            ${#strings.length(str)}
            ${#strings.equals(str)}
            ${#strings.equalsIgnoreCase(str)}

  • 相关阅读:
    修改编译8266NodeMCU固件 打开各种模块以及修改支持智能配网
    3实现8266智能配网并打印出ip地址 8266 lua nodemcu 智能配网 一键配网
    8266 开发环境教程 nodemcu lua开发8266教程 输出世界你好
    代码提交量查询
    antd DatePicker框日期限制
    form表单设置值
    a标签传参数
    css获取页面高度,定位部分信息
    Form自定义校验
    下拉框可输入或输入为下拉框对应的值
  • 原文地址:https://www.cnblogs.com/JealousGirl/p/studyThymeleaf.html
Copyright © 2011-2022 走看看