• 29.在springboot中使用thymeleaf的内置工具类对象(#dates,#numbers,#strings,#lists,null处理)


    知识点:

            模板引擎提供的一组功能性内置对象,可以在模板中直接使用这些对象提供的功能方法。
           工作中常使用的数据类型,如集合,时间,数值,可以使用 Thymeleaf 的提供的功能性对 象来处理它们。 内置功能对象前都需要加 # 号,内置对象一般都以 s 结尾 。
    官方手册: http://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html
    #dates: java.util.Date 对象的实用方法,
    #calendars: 和 dates 类似, 但是 java.util.Calendar 对象;
    #numbers: 格式化数字对象的实用方法;
    #strings: 字符串对象的实用方法: contains, startsWith, prepending/appending 等;
    #objects: 对 objects 操作的实用方法;
    #bools: 对布尔值求值的实用方法;
    #arrays: 数组的实用方法;
    #lists: list 的实用方法,比如
    #sets: set 的实用方法;
    #maps: map 的实用方法;
    #aggregates: 对数组或集合创建聚合的实用方法

    项目结构:

    1.新建项目选择模板thymeleaf起步依赖和web起步依赖

    pom.xml文件

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    4. <modelVersion>4.0.0modelVersion>
    5. <parent>
    6. <groupId>org.springframework.bootgroupId>
    7. <artifactId>spring-boot-starter-parentartifactId>
    8. <version>2.7.3version>
    9. <relativePath/>
    10. parent>
    11. <groupId>com.itgroupId>
    12. <artifactId>028-thymeleaf-courseartifactId>
    13. <version>0.0.1-SNAPSHOTversion>
    14. <properties>
    15. <java.version>1.8java.version>
    16. properties>
    17. <dependencies>
    18. <dependency>
    19. <groupId>org.springframework.bootgroupId>
    20. <artifactId>spring-boot-starter-thymeleafartifactId>
    21. dependency>
    22. <dependency>
    23. <groupId>org.springframework.bootgroupId>
    24. <artifactId>spring-boot-starter-webartifactId>
    25. dependency>
    26. <dependency>
    27. <groupId>org.springframework.bootgroupId>
    28. <artifactId>spring-boot-starter-testartifactId>
    29. <scope>testscope>
    30. dependency>
    31. dependencies>
    32. <build>
    33. <plugins>
    34. <plugin>
    35. <groupId>org.springframework.bootgroupId>
    36. <artifactId>spring-boot-maven-pluginartifactId>
    37. plugin>
    38. plugins>
    39. build>
    40. project>

    2.springboot的核心配置文件application.properties文

    1. server.port=9001
    2. server.servlet.context-path=/myboot
    3. #在开发阶段,关闭模板缓存,让修改立即生效
    4. spring.thymeleaf.cache=false
    5. #编码格式
    6. spring.thymeleaf.encoding=UTF-8
    7. #模板的类型(默认是html)
    8. spring.thymeleaf.mode=HTML
    9. #模板的前缀:类路径的classpath:/templates/
    10. spring.thymeleaf.prefix=classpath:/templates/
    11. #后缀
    12. spring.thymeleaf.suffix=.html

    3.新建实体类对象

    Dog

    1. package com.it.entity;
    2. public class Dog {
    3. private String name;
    4. public String getName() {
    5. return name;
    6. }
    7. public void setName(String name) {
    8. this.name = name;
    9. }
    10. @Override
    11. public String toString() {
    12. return "Dog{" +
    13. "name='" + name + '\'' +
    14. '}';
    15. }
    16. }

    Cat

    1. package com.it.entity;
    2. public class Cat {
    3. private String name;
    4. public String getName() {
    5. return name;
    6. }
    7. public void setName(String name) {
    8. this.name = name;
    9. }
    10. @Override
    11. public String toString() {
    12. return "Cat{" +
    13. "name='" + name + '\'' +
    14. '}';
    15. }
    16. }

    Zoo

    1. package com.it.entity;
    2. public class Zoo {
    3. private Cat cat;
    4. private Dog dog;
    5. @Override
    6. public String toString() {
    7. return "Zoo{" +
    8. "cat=" + cat +
    9. ", dog=" + dog +
    10. '}';
    11. }
    12. public Cat getCat() {
    13. return cat;
    14. }
    15. public void setCat(Cat cat) {
    16. this.cat = cat;
    17. }
    18. public Dog getDog() {
    19. return dog;
    20. }
    21. public void setDog(Dog dog) {
    22. this.dog = dog;
    23. }
    24. }

    SysUser

    1. package com.it.entity;
    2. public class SysUser {
    3. private Integer id;
    4. private String name;
    5. private String sex;
    6. private Integer age;
    7. public SysUser() {
    8. }
    9. public SysUser(Integer id, String name, String sex, Integer age) {
    10. this.id = id;
    11. this.name = name;
    12. this.sex = sex;
    13. this.age = age;
    14. }
    15. @Override
    16. public String toString() {
    17. return "SysUser{" +
    18. "id=" + id +
    19. ", name='" + name + '\'' +
    20. ", sex='" + sex + '\'' +
    21. ", age=" + age +
    22. '}';
    23. }
    24. public Integer getId() {
    25. return id;
    26. }
    27. public void setId(Integer id) {
    28. this.id = id;
    29. }
    30. public String getName() {
    31. return name;
    32. }
    33. public void setName(String name) {
    34. this.name = name;
    35. }
    36. public String getSex() {
    37. return sex;
    38. }
    39. public void setSex(String sex) {
    40. this.sex = sex;
    41. }
    42. public Integer getAge() {
    43. return age;
    44. }
    45. public void setAge(Integer age) {
    46. this.age = age;
    47. }
    48. }

    4.resources目录下的static目录下的index.html文件

    5.resources/templates目录下的文件

    utilobject.html文件

    6.进入主函数入口类ThymeleafApplication,启动项目进行测试

    1. package com.it;
    2. import org.springframework.boot.SpringApplication;
    3. import org.springframework.boot.autoconfigure.SpringBootApplication;
    4. @SpringBootApplication
    5. public class ThymeleafApplication {
    6. public static void main(String[] args) {
    7. SpringApplication.run(ThymeleafApplication.class, args);
    8. }
    9. }

    测试结果:

    #dates的测试结果

     

     

    现在把dog的对象设置为null,在dog对象后面加下?,查看是否还会发生500错误

     

     

     

  • 相关阅读:
    springboot毕设项目电商系统的设计与实现 61d6r(java+VUE+Mybatis+Maven+Mysql)
    Linux 进程管理 实时调度类及SMP和NUMA
    计算机导论第十一周课后作业
    1.3 消息队列(7-8)
    JMM(Java Memory Model,Java内存模型)
    maven下载与安装教程
    系统时间和系统文件
    ClickHouse S3 外表调研
    单元测试,集成测试,系统测试的区别是什么?
    Linux——网络编程二
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/126770911