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

SpringBoot2-[模板引擎-Thymeleaf]

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

‍博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家
擅长领域:Java、大数据、运维、电子
如果本文章各位小伙伴们有帮助的话,关注+点赞+评论+收藏,相应的有空了我也会回访,互助!!!
欄另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!


文章目录
    • 模板引擎-Thymeleaf
      • 1、**表达式**
      • **2、字面量**
      • **3、文本操作**
      • **4、数学运算**
      • **5、布尔运算**
      • **6、比较运算**
      • **7、条件运算**
      • **8、特殊操作**

模板引擎-Thymeleaf
  • SpringBoot不支持JSP

  • Thymeleaf:现代化、服务端Java模板引擎

  • 引入Thymeleaf支持

    
                org.springframework.boot
                spring-boot-starter-thymeleaf
    
    
  • 基本语法:

    1、表达式 2、字面量

    文本值: **‘one text’ , ‘Another one!’ ,…**数字: **0 , 34 , 3.0 , 12.3 ,…**布尔值: true , false

    空值: null

    变量: one,two,… 变量不能有空格

    3、文本操作

    字符串拼接: +

    变量替换: |The name is ${name}|

    4、数学运算

    运算符: + , - , * , / , %

    5、布尔运算

    运算符: and , or

    一元运算: ! , not

    6、比较运算

    比较: **> , < , >= , <= ( gt , lt , ge , le )**等式: == , != ( eq , ne )

    7、条件运算

    If-then: (if) ? (then)

    If-then-else: (if) ? (then) : (else)

    Default: (value) ?: (defaultvalue)

    8、特殊操作

    无操作: _

    • ⚠️ 注意:当文本不在一个标签中的时候·,需要使用行内写法

      比如

      
                

      John Doe
      • 行内写法

        
                  

        [[${session.loginUser.userName}]]
  • 视图解析

    • 返回值以 forward: 开始: new InternalResourceView(forwardUrl); --> 转发request.getRequestDispatcher(path).forward(request, response);
    • 返回值以 redirect: 开始: new RedirectView() --》 render就是重定向
    • 返回值是普通字符串: new ThymeleafView()—>
  • Thymeleaf使用

    • SpringBoot已经配置好了基本的Thymeleaf的属性

      @Configuration(
          proxyBeanMethods = false
      )
      @EnableConfigurationProperties({ThymeleafProperties.class})
      @ConditionalOnClass({TemplateMode.class, SpringTemplateEngine.class})
      @AutoConfigureAfter({WebMvcAutoConfiguration.class, WebFluxAutoConfiguration.class})
      
    • ThymeleafProperties.java

      public class ThymeleafProperties {
          private static final Charset DEFAULT_ENCODING;
          public static final String DEFAULT_PREFIX = "classpath:/templates/";
          public static final String DEFAULT_SUFFIX = ".html";
          private boolean checkTemplate = true;
          private boolean checkTemplateLocation = true;
          private String prefix = "classpath:/templates/";
          private String suffix = ".html";
          private String mode = "HTML";
      
    • 代码实现:

      success.html

      
      
      
          
          Welcome Page!
      
      
      
      占位符1
      进入百度! 进入百度!

      ViewController.java

      @Controller
      public class ViweController {
          
          @GetMapping("/aitu")
          public String success(Model model){
              model.addAttribute("msg","你好世界!");
              model.addAttribute("https://blog.csdn.net/qq_45860349/article/details/link","https://www.baidu.com");
              return "success";
          }
      }
      
    • 公共代码块抽取-三种方式

      1. 首先选择使用footer标签抽取,还是使用选择器抽取

        抽取:
        © 2011 The Good Thymes Virtual Grocery

        选择器抽取

      2. 选择公共代码块使用的方式

        
        - 将footer以及其内部内容放到div内部,也就是当前的div也包括
        
        
        
        - 将footer以及其内部内容放到div所在的位置,div将没有
        
        
        
        - 将footer内容放到当前的div中,包括div不包括footer
        
  • 拦截器

    1. 定制拦截器需要实现HandlerInterceptor 接口
    @Slf4j
    public class LoginInterceptor implements HandlerInterceptor {
    
    1. 配置拦截器
    @Configuration
    public class WebConfig implements WebMvcConfigurer {
        /**
    

    拦截器原理

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

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

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