栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

springboot——7Thymeleaf模板引擎,基础语法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

springboot——7Thymeleaf模板引擎,基础语法

Thymeleaf模板引擎

我们为什么不用jsp呢,即熟悉,又方便?
我们用的是嵌入式的Tomcat,所以现在默认是不支持jsp的。

所以那么spring推荐的模板引擎还有些什么?
jsp,thymeleaf,freemarker

模板引擎的思想是

结合模板和数据,解析输出最终页面

第一步引入依赖,现在都是基于3.x版本的才可以用。
了解它
Thymeleaf 官网:https://www.thymeleaf.org/
Thymeleaf 在Github 的主页:https://github.com/thymeleaf/thymeleaf
使用它
Spring官方文档:找到我们对应的版本
https://docs.spring.io/spring-boot/docs/2.2.5.RELEASE/reference/htmlsingle/#using-boot-starter


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

第二步?没有第二步,在对应目录下写HTML吧
创建一个TestController

@Controller
public class TestController {

    @GetMapping("/thyme")
    public String tyeme(Model model){

        model.addAttribute("msg","快乐的玩耍吧~");
        return "test";
    }
}

创建一个test.html




    
    Title



    

模板引擎的作用就是写一个动态模板,表达式等

springboot有ThymeleafProperties配置类,有一些配置,可以自己去查看配置类属性

重点是语法

语法

1、可以使用任意的 th:attr 来替换Html中原生属性的值!

html中的表达式还有

Simple expressions:(表达式语法)
Variable expressions: ${...}:获取变量值;OGNL;
    1)、获取对象的属性、调用方法
    2)、使用内置的基本对象:#18
         #ctx : the context 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.

    3)、内置的一些工具对象:
      #execInfo : information about the template being processed.
      #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.
==================================================================================

  Selection Variable expressions: *{...}:选择表达式:和${}在功能上是一样;
  Message expressions: #{...}:获取国际化内容
  link URL expressions: @{...}:定义URL;
  Fragment expressions: ~{...}:片段引用表达式

Literals(字面量)
      Text literals: 'one text' , 'Another one!' ,…
      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: _

那么关于html中常用的foreach,进行演示说明一下

Controller.class

@RequestMapping("/t2")
public String test2(Map map){
    //存入数据
    map.put("msg","Hello");
    map.put("users", Arrays.asList("qinjiang","kuangshen"));
    //classpath:/templates/test.html
    return "test";
}

test.html




    
    狂神说


测试页面







[[${user}]]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/397083.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号