Thymeleaf初识与使用

##模板引擎

  1. 除了JSP以外,SpringBoot还提供许多其他的模板引擎,比如freemarker、thymeleaf等。
  2. SpringBoot官方不推荐使用JSP, Thymeleaf是SpringBoot推荐使用的视图层技术。
  3. Thymeleaf的文件默认在src/main/resources/templates路径下。这个目录是一个受保护的目录,不能通过HTTP协议直接访问该目录中的资源,毕竟thymeleaf是一个视图模板,如果可以外部直接访问,会缺少数据渲染的过程,无法正常显示视图逻辑。

##thymeleaf简介

  1. Thymeleaf是用于Web和独立环境的现代服务器端Java模板引擎。
  2. Thymeleaf的模板即是HTML,所以能够直接在浏览器中正确显示.thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。

##thymeleaf的使用。

加入thymeleaf启动器

注意:在Thymeleaf技术低版本中,对html标签的要求和xml是一致的。但是不符合HTML常见定义方式。提供更高版本的Thymeleaf相关jar包,可以避免这种问题。在Thymeleaf-dialect2.x和Thymeleaf3.x之后就不再对HTML良构有严格限制了。

   
        1.8
        2.4.1
        3.0.11.RELEASE
   

   
        org.springframework.boot
        spring-boot-starter-thymeleaf
   

thymeleaf配置(application.yml)

server:
  port: 80
spring:
  thymeleaf:
    mode: HTML5
    encoding: UTF-8
    cache: false #热部署文件,页面不产生缓存,及时更新
  servlet:
    multipart:
      max-file-size: 100MB #单个文件最大的体积
      max-request-size: 100MB #单次请求中, 所有文件最大的体积

若想使用Thymeleaf的API,需要在在html标签添加属性


##Thymeleaf常用API介绍

  1. th:text - 文本显示属性
  2. th:utext - 文本原样输出
  3. th:value - 数据录入属性,相当于HTML标签中的value属性
  4. th:action - 用于定义form表单的提交路径
  5. th:href - 用于定义URL路径的thymeleaf语法
  6. th:src - 用于定义资源路径的thymeleaf语法。通常用于定位图片,JS导入等

##Thymeleaf逻辑控制

if判断


    show text

分支判断

show text 1 show text 2 show text 3

循环List



    
    
    

循环Map
迭代Map集合,在迭代Map的时候,如果使用迭代线型集合的方式迭代map,每个循环变量类型是Map.Entry。如果想操作Map.Entry中的key或value,可以进行二次迭代。在Thymeleaf中,将Map.Entry看做是一个集合

循环中的状态变量
状态变量,就是为循环过程提供状态依据的。如:循环的索引,数量,计数,奇偶数等。状态变量在循环语法中是通用的



    
    
    
    
    
    
    

访问作用域


URL表达式
Thymeleaf会对请求头进行encode操作。Springmvc在处理请求头参数的时候,会进行decode操作



相对路径 - 相对于应用的根
相对路径 - 相对于服务器的根
相对路径 - 相对于当前路径
参数传递
Restful传参

thymeleaf字符串操作


${#strings.isEmpty(str)}

${#strings.contains(all, 'str')}

${#strings.startsWith(attr, 'pre')}

${#strings.endsWith(attr,'suf')}

${#strings.length(attr)}

${#strings.indexOf(attr, 'str')}

${#strings.substring(attr,begin[,end])}

${#strings.toUpperCase(attr)}

${#strings.toLowerCase(attr)}

thymleaf日期操作


${#dates.format(date)}
${#dates.format(date, 'formatter')}

${#dates.year(date)}

${#dates.month(date)}

${#dates.day(date)}

你可能感兴趣的:(微服务,-,教学)