Servlet8 - thymeleaf 基础

Thymeleaf 基础

将java内存中的数据加载到在 html页面上,称为渲染

而 Thymeleaf 就是一种实现视图渲染的技术

  • 添加Thymeleaf的jar包

  • 新建一个Servlet类ViewBaseSevlet

    • 无需手写,搬运即可
  • 在web.xml文件中添加配置

    • <!-- 配置上下文参数 prefix-前缀  suffix-后缀 -->
          <context-param>
              <param-name>view-prefix</param-name>
              <param-value>/</param-value>
          </context-param>
          <context-param>
              <param-name>view-suffix</param-name>
              <param-value>.html</param-value>
          </context-param>
      
  • 使得我们的Servlet继承ViewBaseSevlet

  • 根据逻辑视图名称得到物理视图名称

    • public class IndexServlet extends ViewBaseServlet {
       	//此处的视图名称是 index
          //那么thymeleaf会将这个 逻辑视图名称 对应到 物理视图 名称上去
          //逻辑视图名称 :   index
          //物理视图名称 :   view-prefix + 逻辑视图名称 + view-suffix
          //所以真实的视图名称是:      /       index       .html
          super.processTemplate("index",request,response);   
      }
      
  • 在 index.html 顶部添加 thymeleaf 声明

    • <html xmlns:th="http://www.thymeleaf.org">
      
    • 可以使用 thymeleaf 语法,会有相应提示, thymeleaf 语法中可以直接获取 session 保存的数据

    • th命名空间

    • <tr th:if="${#lists.isEmpty(session.fruitList)}" >
          <td colspan = "4">很抱歉,库存为空!</td>
      </tr>
      <tr th:unless="${#lists.isEmpty(session.fruitList)}" th:each="fruit : ${session.fruitList}">
          <td th=text="$fruit.fname">苹果</td>
          <td th=text="$fruit.price">5</td>
          <td th=text="$fruit.fcount">20</td>
      </tr>
      
    • session.fruitList 获取 session 保存域中的对象,再判断该对象是否为空

    • if = empty 则提示数据为空

    • unless = empty 相当于else,等于 !empty,数据不为空则显示

    • each = "a : List" 相当于for-each迭代器遍历,实现一条语句显示全部数据

    • text="xx" 设置当前标签内部文本为 xx

posted @ 2023-01-17 16:33  LaViez  阅读(28)  评论(0)    收藏  举报