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 @   LaViez  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示