• 模块引擎 Thymeleaf


    模块引擎

    应用控制器可以根据客户端请求,调用业务方法,并转发页面。但是,对于页面中战士动态数据的处理,只能以拼接字符串的方式进行。

    应用控制器对于生成动态网页繁琐,不利于项目分工。

    解决方案之一,就是利用模板引擎简化动态数据的生成。

    模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的html文档

    模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码分离,这就大大提升了开发效率,良好的设计也使得代码重用变得更加容易。

    常见的模板引擎有:
    Jsp
    Thymeleaf
    Freemarker
    ......

    thymeleaf 环境搭建

    在springBoot 环境下,添加 thymeleaf 启动器

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

    在 maven 项目的 resources 目录下,新建 application.yml。进行thymeleaf配置(可选)

    1. spring:
    2.  thymeleaf:
    3.    enabled: true  #开启thymeleaf视图解析
    4.    encoding: utf-8  #编码
    5.    prefix: classpath:/templates/  #前缀
    6.    cache: false  #是否使用缓存
    7.    mode: HTML  #严格的HTML语法模式
    8.    suffix: .html  #后缀名

    在 maven 项目的 resources 目录下,新建 templates 目录,存放 thymeleaf 页面


    在应用控制器中绑定共享数据

    1. @RequestMapping("test")
    2. public String test(HttpServletRequest request){
    3.    //绑定共享数据
    4.    request.setAttribute("name","刘勇");
    5.    request.setAttribute("age",20);
    6.    //请求转发到指定页面
    7.    return "/showInfo.html";
    8. }

    在页面中显示共享数据

    1、设置 thymeleaf 前缀

    <html xmlns:th="http://www.thymeleaf.org">

    2、显示共享数据

    1. 姓名:<span th:text="${name}">span><br>
    2. 年龄:<span th:text="${age}">span>

    判断语句:

    1. <span th:if="${age>=18}">已成年span>
    2. <span th:if="${age<18}">未成年span>

    循环语句:

    在应用控制器中绑定共享数据

    request.setAttribute("list",userList);

    在页面中通过 th:each 进行循环

    1. <table border="1" cellspacing="0" width="80%">
    2. <thead><th>编号th><th>姓名th><th>电话th>thead>
    3. <tbody>
    4. <tr th:each="obj:${list}">
    5. <td th:text="${obj.id}">td>
    6. <td th:text="${obj.name}">td>
    7. <td th:text="${obj.phone}">td>
    8. tr>
    9. tbody>

  • 相关阅读:
    Java进阶(十五)XML、XML解析、设计模式
    ansible playbook实现磁盘格式化及文件系统挂载
    点击、拖拉拽,BI系统让业务掌握数据分析主动权
    leetcode-64.最小路径和
    day35 代码回想录 柠檬水找零&根据身高重建队列&用最少数量的箭引爆气球
    AB试验(五)实验过程中的一些答疑解惑
    为什么我们不支持手工上传镜像
    docker 快速上手
    解决kafka.errors.NodeNotReadyError: NodeNotReadyError
    Druid 查询超时配置的探究 → DataSource 和 JdbcTemplate 的 queryTimeout 到底谁生效?
  • 原文地址:https://blog.csdn.net/weixin_66564094/article/details/126575717