• springboot thymeleaf使用


    导入依赖

    1. <dependency>
    2. <groupId>org.thymeleafgroupId>
    3. <artifactId>thymeleafartifactId>
    4. <version>3.0.11.RELEASEversion>
    5. dependency>
    6. <dependency>
    7. <groupId>org.thymeleafgroupId>
    8. <artifactId>thymeleaf-spring5artifactId>
    9. <version>3.0.11.RELEASEversion>
    10. dependency>

    yml配置

    1. thymeleaf:
    2. mode: HTML #thymeleaf 的模板模型
    3. cache: false #不适用缓存
    4. encoding: UTF-8 #编码
    5. prefix: classpath:/templates/ #前缀
    6. suffix: .html #后面

     html

    1. @Controller
    2. public class HelloController {
    3. @Autowired
    4. private UserDao userDao;
    5. @RequestMapping("/test")
    6. public String hello(Map map){
    7. System.out.println("进来了");
    8. List users = userDao.getAll();
    9. map.put("users",users);
    10. System.out.println(users);
    11. return "hello";
    12. }
    13. @RequestMapping("/delete")
    14. public String delete(Integer id){
    15. System.out.println(id);
    16. Integer a=userDao.delete(id);
    17. return "forward:/test";
    18. }
    19. @RequestMapping("/toUpdate")
    20. public String getOne(Integer id,Map map){
    21. System.out.println(id);
    22. User user=userDao.getOne(id);
    23. map.put("user",user);
    24. return "one";
    25. }
    26. @RequestMapping("/toAdd")
    27. public String toAdd(){
    28. return "add";
    29. }
    30. }

    必须加入

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <h1>Helloh1>
    9. <table cellspacing="0" border="1">
    10. <tr>
    11. <th>IDth>
    12. <th>NAMEth>
    13. <th>AGEth>
    14. <th>GENDERth>
    15. <th>BIRTHDAYth>
    16. <th>OPERAth>
    17. tr>
    18. <tr th:each="user:${users}">
    19. <td th:text="${user.id}">td>
    20. <td th:text="${user.name}">td>
    21. <td th:text="${user.age}">td>
    22. <td th:text="${user.gender}">td>
    23. <td th:text="${#dates.format(user.birthday,'yyyy-MM-dd')}">td>
    24. <td><a th:href="@{/delete(id=${user.id})}">删除a><a th:href="@{/toUpdate(id=${user.id})}">编辑a>td>
    25. tr>
    26. table>
    27. <a th:href="@{/toAdd}">去添加a>
    28. body>
    29. html>

    1. html>
    2. <html lang="en" xmlns:th="www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <form th:action="@{/add}" method="post" >
    9. <input name="id" placeholder="请输入id"><br/>
    10. <input name="name" placeholder="请输入姓名"><br/>
    11. <input name="age" placeholder="请输入年龄"><br/>
    12. <input name="gender" placeholder="请输入性别" ><br/>
    13. <input type="submit" value="添加">
    14. form>
    15. body>
    16. html>

     

    1. html>
    2. <html lang="en" xmlns:th="http://www.thymeleaf.org">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>Titletitle>
    6. head>
    7. <body>
    8. <form th:action="@{/update}" th:object="${user}" method="post" >
    9. <input name="id" th:value="*{id}" value="aa"><br/>
    10. <input name="name" th:value="*{name}"><br/>
    11. <input name="age" th:value="*{age}"><br/>
    12. <input name="gender" th:value="*{gender}"><br/>
    13. <input type="submit" value="修改">
    14. form>
    15. body>
    16. html>

     Thymeleaf模板

    4.1 th 属性
    4.1.1 常用 th 属性解读
    html 有的属性, Thymeleaf 基本都有,而常用的属性大概有七八个。其中 th 属性执行的优先级从 1~8 ,数字越低优先
    级越高。
    一、 th:text :设置当前元素的文本内容,相同功能的还有 th:utext ,两者的区别在于前者不会转义 html 标签,后者
    会。优先级不高: order=7
    二、 th:value :设置当前元素的 value 值,类似修改指定属性的还有 th:src th:href 。优先级不高: order=6
    三、 th:each :遍历循环元素,和 th:text th:value 一起使用。注意该属性修饰的标签位置,详细往后看。优先级很
    高: order=2
    四、 th:if :条件判断,类似的还有 th:unless th:switch th:case 。优先级较高: order=3
    五、 th:insert :代码块引入,类似的还有 th:replace th:include ,三者的区别较大,若使用不恰当会破坏 html
    构,常用于公共代码块提取的场景。优先级最高: order=1
    六、 th:fragment :定义代码块,方便被 th:insert 引用。优先级最低: order=8
    七、 th:object :声明变量,一般和 *{} 一起配合使用,达到偷懒的效果。优先级一般: order=4
    八、 th:attr :修改任意属性,实际开发中用的较少,因为有丰富的其他 th 属性帮忙,类似的还有 th:attrappend
    th:attrprepend 。优先级一般: order=5
    4.1.2 常用 th 属性使用
    使用 Thymeleaf 属性需要注意点以下五点:
    一、若要使用 Thymeleaf 语法,首先要声明名称空间:
    xmlns:th="http://www.thymeleaf.org"
    二、设置文本内容 th:text ,设置 input 的值 th:value ,循环输出 th:each ,条件判断 th:if ,插入代码块 th:insert ,定
    义代码块 th:fragment ,声明变量 th:object
    三、 th:each 的用法需要格外注意,打个比方:如果你要循环一个 div 中的 p 标签,则 th:each 属性必须放在 p 标签上。
    若你将 th:each 属性放在 div 上,则循环的是将整个 div
    四、变量表达式中提供了很多的内置方法,该内置方法是用 # 开头,请不要与 #{} 消息表达式弄混。
    五、 th:insert th:replace th:include 三种插入代码块的效果相似,但区别很大。
    pom.xml 引入 Thymeleaf 的依赖,并确定其版本

    链接表达式好处
    不管是静态资源的引用, form 表单的请求,凡是链接都可以用 @{...} 。这样可以动态获取项目路径,即便项目名
    变了,依然可以正常访问
    链接表达式结构
    无参: @{/xxx}
    有参: @{/xxx(k1=v1,k2=v2)} 对应 url 结构: xxx?k1=v1&k2=v2
    引入本地资源: @{/ 项目本地的资源路径 }
    引入外部资源: @{/webjars/ 资源在 jar 包中的路径 }
    列举:第三部分的实战引用会详细使用该表达式
  • 相关阅读:
    Spring Cloud服务发现与注册的原理与实现
    Element-Ui+Vue实现首页布局(带收缩展开效果)
    SpringBoot运行原理
    Windows系统怎么加密文件夹?
    P39 事件处理
    【Linux】命令
    开发板TFTP调试
    IDEA——工程项目的两种窗口开发模式
    LCMXO2-2000HC-4FTG256C FPGA MachXO2系列 256-FTBGA 现场可编程门阵列
    【二】2D测量 Metrology——align_metrology_model()算子
  • 原文地址:https://blog.csdn.net/weixin_60934893/article/details/128060061