| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> springboot -> 正文阅读 |
|
[Java知识库]springboot |
目录 2.1.1 创建一个新的Module,选择类型为Spring Initializr ?2.1.4 修改Content Root路径及文件所在目录 2.1.7 创建一个Spring MVC的HelloSpringBootController 2.1.8 在idea中右键,运行Application类中的main方法 ?2.1.9 在浏览器中输入http://localhost:8080/test访问 2.3.1.1 .properties文件(默认采用该文件) 2.4.2 在pom.xml的build标签中要配置以下信息 2.4.3 在application.properties文件配置Spring MVC的视图展示为jsp,这里相当于Spring MVC的配置 2.4.4 在com.springboot.controller包下创建TestController类,并编写代码 ?2.4.5 在src/main 下创建一个webapp目录,然后在该目录下新建test.jsp页面 2.4.6 重新运行Application,通过浏览器访问测试 4.1 方式一:直接在main方法中,根据SpringApplication.run()方法获取返回的Spring容器对象,再获取业务bean进行调用 4.1.1 创建一个SpringBoot Module,_07-springboot-java01 4.1.2 创建一个演示TestService,放到service包下 4.1.3 在Application类的main方法中,获取容器,调用业务bean 4.2 方式二:Spring boot 的入口类实现CommandLineRunner接口 5.2.1 按照Spring MVC的方式编写一个拦截器类,实现HandlerInterceptor接口 6.2 方式二 通过Spring Boot的配置类实现(组件注册) 6.2.1 创建一个Servlet包,下面创建TestServlet类 6.2.2 编写一个Spring Boot的配置类,在该类中注册Servlet 8.2 方式二 在application.properties中配置字符编码(推荐) 9.2.1 通过Maven package命令打jar包到target目录下 10.2.1 创建Spring Boot项目_12-sprinboot-thymeleaf,添加web和Thymeleaf依赖 10.2.2 在Spring boot的核心配置文件application.properties中对Thymeleaf进行配置 10.2.3 创建ThymeleafControlle去映射到模板页面(和SpringMVC基本一致) 10.2.4 在src/main/resources的templates下新建一个test02.html页面用于展示数据 一、springboot简介?????????Spring Boot是Spring家族中的一个框架,它用来简化Spring应用程序的创建和开发过程,也可以说Spring Boot能简化我们之前采用SpringMVC + Spring + MyBatis框架进行开发的过程。 ????????? 在以往我们采用SpringMVC + Spring + MyBatis框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并将它们整合在一起等,而Spring Boot框架对此开发过程进行了革命性的颠覆,完全抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。 ? ????????所以采用Spring Boot可以非常容易和快速地创建基于Spring框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。正因为 Spring Boot 它化繁为简,让开发变得极其简单和快速,所以在业界备受关注。 1.2 Spring Boot的特性
1.3 Spring Boot四大核心1.3.1 自动配置? ????????针对很多Spring应用程序和常见的应用功能,Spring Boot能自动提供相关配置 1.3.2 起步依赖????????告诉Spring Boot需要什么功能,它就能引入需要的依赖库 1.3.3 Actuator????????让你能够深入运行中的Spring Boot应用程序,一探Spring Boot程序的内部信息 1.3.4 命令行界面????????这是Spring Boot的可选特性,主要针对Groovy语言使用 ????????? Groovy是一种基于JVM(Java虚拟机) 的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与Java代码很好地结合,也能用于扩展现有代码,由于其运行在JVM上的特性,Groovy可以使用其他Java语言编写的库 二、 Spring Boot入门案例2.1 开发步骤2.1.1 创建一个新的Module,选择类型为Spring Initializr注意:https://start.spring.io 是国外的地址,国内部分地址可能无法访问因此建议选择Constum 选择手动指定国内访问地址 https://start.springboot.io 2.1.2 指定GAV及pom配置信息 ?2.1.3 选择Spring Boot版本及依赖会根据选择的依赖自动添加起步依赖并进行自动配置 ?2.1.4 修改Content Root路径及文件所在目录????????点击Finish,第一次创建,在右下角会提示正在下载相关的依赖 2.1.5 对POM.xml文件进行解释
2.1.6 对SpringBoot项目结构进行说明
2.1.7 创建一个Spring MVC的HelloSpringBootController注意:新创建的类一定要位于Application同级目录或者下级目录,否则SpringBoot加载不到 ? 2.1.8 在idea中右键,运行Application类中的main方法????????通过在控制台的输出,可以看到启动SpringBoot框架,会启动一个内嵌的tomcat,端口号为8080,上下文根为空 ? ?2.1.9 在浏览器中输入http://localhost:8080/test访问2.2 入门案例分析
????????5.@Controller 及 @ResponseBody 依然是我们之前的Spring MVC,因为Spring Boot的里面? 依然是使用我们的Spring MVC + Spring + MyBatis 等框架 1)、@SpringBootApplication注解是Spring Boot项目的核心注解,主要作用是开启Spring自动配置,如果在Application类上去掉该注解,那么不会启动SpringBoot程序
2.3 Spring Boot的核心配置文件????????Spring Boot的核心配置文件用于配置Spring Boot程序,名字必须以application开始 2.3.1.1 .properties文件(默认采用该文件)????????键值对的properties属性文件配置方式
?配置完毕之后,启动浏览器测试 2.3.1.2 .yml文件yml 是一种 yaml 格式的配置文件,主要采用一定的空格、换行等格式排版进行配置。 yaml 是一种直观的能够被计算机识别的的数据序列化格式,容易被人类阅读,yaml 类似于 xml,但是语法比xml 简洁很多,值与前面的冒号配置项必须要有一个空格, yml 后缀也可以使用 yaml 后缀
2.3.2 多环境配置? ????????在实际开发的过程中,我们的项目会经历很多的阶段(开发->测试->上线),每个阶段的配置也会不同,例如:端口、上下文根、数据库等,那么这个时候为了方便在不同的环境之间切换,SpringBoot提供了多环境配置,具体步骤如下 ? 为每个环境创建一个配置文件,命名必须以application-环境标识.properties|yml ?dev配置 online配置 test配置 主配置文件中,配置dev环境, ?运行启动服务 访问online环境?,访问成功 ?访问test和dev环境,都无法访问。 2.3.3 Spring Boot自定义配置2.3.3.1 @Value注解 用于逐个读取application.properties中的配置 案例演示 1. 在开发环境的配置文件applicatin-dev.properties中,添加两个自定义配置项stuName和stuAge。在idea中可以看到这两个属性不能被SpringBoot识别,背景是桔色的 ?2.在TestController类中使用自定义属性,注意需要使用${},并且使用@Value注解 ?3. 在TestController中定义方法,进行测试 4.启动服务,访问 2.3.3.2 @ConfigurationProperties ? 将整个文件映射成一个对象,用于自定义配置项比较多的情况 案例演示 1.在配置文件中配置自定义属性 2.在com.springboot.model包下创建Student类,并为该类加上Component和ConfigurationProperties注解,prefix可以不指定,如果不指定,那么会去配置文件中寻找与该类的属性名一致的配置,prefix的作用可以区分同名配置 ?3.?在TestController类中使用自定义属性,使用@Resource或者Autowire注入 ?4.?在TestController中定义方法,进行测试 ?5.启动服务,访问 2.3.3.3 中文乱码 如果在SpringBoot核心配置文件中有中文信息,会出现乱码:
? ? ? 2.4 Spring Boot前端使用JSP????????创建_03-springboot-jsp项目 2.4.1 在pom.xml文件中配置以下依赖项
2.4.2 在pom.xml的build标签中要配置以下信息????????SpringBoot要求jsp文件必须编译到指定的META-INF/resources目录下才能访问,否则访问不到。
2.4.3 在application.properties文件配置Spring MVC的视图展示为jsp,这里相当于Spring MVC的配置
集成完毕之后,剩下的步骤和我们使用Spring MVC一样 2.4.4 在com.springboot.controller包下创建TestController类,并编写代码?2.4.5 在src/main 下创建一个webapp目录,然后在该目录下新建test.jsp页面
2.4.6 重新运行Application,通过浏览器访问测试三、 Spring Boot框架Web开发3.1 Spring Boot集成MyBatis3.1.1 案例思路通过SpringBoot +MyBatis实现对数据库user表键查询操作 3.1.2.2 创建_04-springboot-mybatis项目 创建一个新的SpringBoot的Module 选择SpringBoot版本以及web依赖 ? 3.1.2.3 在pom.xml中相关jar依赖 ? ?注意:由于SpringBoot默认的MySQL驱动包版本过高与我们使用的数据库版本不符,建议修改MySQL的启动包版本号为5.1.46 3.1.2.4 在Springboot的核心配置文件application.properties中配置数据源 ?注意根据自己的ip修改url
3.1.2.5 开发代码 1.使用Mybatis逆向工程生成接口、映射文件以及实体bean,具体步骤见最后逆向工程操作步骤 2. 在com.springboot.controller包下创建UserController并编写代码 ?3.在com.springboot.service包下创建UserService接口并编写代码 ?4.在com.springboot.service.impl包下创建service接口的实现并编写代码 ?5.在Mybatis反向工程生成的UserMapper接口上加一个@Mapper注解 ?注意:默认情况下,Mybatis的xml映射文件不会编译到target的class目录下,所以我们需要在pom.xml文件中配置resource
6.UserMapper.xml文件中,编写sql映射 ?7. 启动应用,浏览器访问 3.1.3 其它开发方式3.1.3.1 在运行的主类上添加注解包扫描@MapperScan("com.springboot.mapper") 1、注释掉UserMapper接口上的@Mapper注解 ?2、在运行主类Application上加@MapperScan("com.springboot.mapper") ?3、启动应用,浏览器访问 3.1.3.2 将接口和映射文件分开 ? ????????因为SpringBoot不能自动编译接口映射的xml文件,还需要手动在pom文件中指定,所以有的公司直接将映射文件直接放到resources目录下 1、在resources目录下新建目录mapper存放映射文件,将UsertMapper.xml文件移到resources/mapper目录下 ?2、在application.properties配置文件中指定映射文件的位置,这个配置只有接口和映射文件不在同一个包的情况下,才需要指定 ?别忘了pom文件中加如下配置,不然无法将resource下面的xml文件编译 ?3、启动应用,浏览器访问 3.2 Spring Boot 事务支持Spring Boot 使用事务非常简单,底层依然采用的是Spring本身提供的事务管理 1、在入口类中使用注解 @EnableTransactionManagement 开启事务支持 2、 在访问数据库的Service方法上添加注解 @Transactional 即可 3.2.1 案例思路?????????通过SpringBoot +MyBatis实现对数据库user表进行新增操作,在service层的方法中构建异常,查看事务是否生效? ? ? ?? 3.2.2.1 在UserController中添加新增学生的方法 ?3.2.2.2 在UserService?接口中新增添加学生方法 ?? ?3.2.2.3?在UserServiceImpl接口实现类中添加实现新增学生方法,并构建一个异常,同时在该方法上加@Transactional注解,查看事务是否正常 ?3.2.2.4 在Application类上加@EnableTransactionManagement开启事务支持 3.2.2.5 启动Application,通过浏览器访问进行测试 浏览器 ?控制台 ?数据库表 从上面我们可以看出已经执行了第一次插入操作后,但是抛出了异常,查看数据库,没有数据插入,说明事务已经起到了作用;? 3.2.2.6 注释掉UserServiceImpl上的@Transactional测试 ?第一次插入操作成功 3.2.3控制台打印sql日志配置文件添加如下,并且设置日志级别 3.3 Spring Boot集成Redis3.3.1 Spring Boot 集成Redis单机模式3.3.1.1 案例思路 查询学生的功能,先从redis缓存中查找,如果找不到,再从数据库中查找,然后放到redis缓存中 3.3.1.2 实现步骤 3.3.1.2.1 创建项目 _05-springboot-redis ? ?3.3.1.2.2 在Spring Boot核心配置文件application.properties中配置redis连接信息 3.3.1.2.3 在com.springboot.model包下创建User类并编写代码 ?注意:当前实体类需要添加get和set方法,并必须添加可序列化接口Serializable 3.3.1.2.4 在com.springboot.service包下创建UserService接口并编写代码 ? 3.3.1.2.5?在UserServiceImpl中注入RedisTemplate并实现获取所有学生的方法 配置了上面的步骤,Spring Boot将自动配置RedisTemplate,在需要操作redis的类中注入redisTemplate即可。Spring Boot帮我们注入RedisTemplate类,泛型里面只能写 <String, String>、<Object, Object>或者什么都不写
3.3.1.2.5 在com.springboot.controller包下创建UserController类并编写代码 3.3.1.2.7 启动SpringBoot应用,浏览器2次访问 ?查看控制台 ?第一次从访问redis获取没有获取到数据,会读取数据库数据,并将数据写到redis中 第二次访问redis中有数据,直接读取redis里面的数据 3.3.2 缓存穿透现象3.3.2.1.1 在UserController程序中创建多个线程调用service的getUserAll()方法 ?3.3.2.1.2 清空Redis中的数据,启动应用程序,浏览器访问测试,观察控制台 ?注意:多个线程都去查询数据库,这种现象就叫做缓存穿透,如果并发比较大,对数据库的压力过大,有可能造成数据库宕机,假死。 3.3.2.2 解决方案 3.3.2.2.1 修改UserServiceImpl中的代码
3.3.2.2.2 清空Redis中的数据, 启动应用程序,浏览器访问测试,查看控制台输出 ????????只有第一个线程查询数据库,其它线程查询Redis缓存,这样的解决的小问题就是第一批进来的用户会有一个等待,但是这样的影响可以忽略 3.3.2.3 springboot集成Redis阻止缓存穿透,为什么要做双层验证 1、?防止线程获取到cpu执行权限的时候,其他线程已经将数据放到Redis中了,所以再次判断 2、不能将synchronized范围扩大,因为如果Redis缓存中如果有数据,线程不应该同步,否则影响效率 3.3.3 Spring Boot 集成Redis哨兵模式? 在实际的生产环境中,如果我们只有一台Redis服务,那么当这台唯一的Redis服务器宕机以后,我们整个服务将变得不可用,因此为了解决单点故障问题我们通常需要配置多个Redis实现Redis中的主从复制,并利用哨兵来实现Redis的高可用 3.3.3.1 在Springboot核心配置文件application.properties中配置redis连接信息 IP地址及master根据自己的情况进行修改 ?3.3.3.2启动三台Redis服务器 3.3.3.3?启动三台Redis哨兵 3.3.3.4在Redis Desktop Manager上创建三个连接,连接到6380,6382,6384Redis服务器 3.3.3.5 清空6380主数据,查看情况 6382和6384也跟着清空 3.3.3.7 启动SpringBoot主程序,浏览器访问,查看Redis情况 哨兵会将Redis6382 或6384作为主,等Redis6380再次启动后,会作为从节点 3.4 Spring Boot热部署插件在实际开发中,我们修改某些代码逻辑功能或页面都需要重启应用,这无形中降低了开发效率,热部署是指当我们修改代码后,服务能自动重启加载新修改的内容,而不需要重启应用,这样大大提高了我们开发的效率。 Spring Boot热部署通过在pom.xml中添加一个spring-boot-devtools插件实现
该热部署插件在实际使用中会有一些小问题,明明已经重启,但没有生效,这种情况下,手动重启一下程序; 修改完毕后,需要选中项目,在Build选项中选择Build Module 四、 Spring Boot 非web应用程序在Spring Boot框架中,要创建一个非Web应用程序(纯Java程序),有两种方式 4.1 方式一:直接在main方法中,根据SpringApplication.run()方法获取返回的Spring容器对象,再获取业务bean进行调用4.1.1 创建一个SpringBoot Module,_07-springboot-java01? 4.1.2 创建一个演示TestService,放到service包下4.1.3 在Application类的main方法中,获取容器,调用业务bean? 执行main方法获取bean对象数据? 4.2 方式二:Spring boot 的入口类实现CommandLineRunner接口?将Application类的实现CommandLineRunner接口 ? 五、 Spring Boot 使用拦截器? 1、自定义拦截器类,实现HandlerInterceptor接口 2、注册拦截器类 5.2 Spring Boot使用拦截器步骤5.2.1 按照Spring MVC的方式编写一个拦截器类,实现HandlerInterceptor接口创建interceptor包,包下创建MyInterceptor接口,并且实现HandlerInterceptor接口 5.2.2 通过配置类注册拦截器?????????创建一个config包,创建一个配置类MyConfig,并实现WebMvcConfigurer接口, 覆盖接口中的addInterceptors方法,并为该配置类添加@Configuration注解,标注此类为一个配置类,让Spring Boot 扫描到,这里的操作就相当于SpringMVC的注册拦截器 ,@Configuration就相当于一个applicationContext-mvc.xml
5.2.3 浏览器访问测试拦截成功六、 使用Servlet(了解)6.1 方式一 通过注解扫描方式实现6.1.1 通过注解方式创建一个Servlet在下创建com.springboot.servlet包,并在该包下创建TestServlet,并且添加@WebServlet("/test")注解 6.1.2 修改Application类6.1.3 启动应用SpringBoot,浏览器访问测试6.2 方式二 通过Spring Boot的配置类实现(组件注册)6.2.1 创建一个Servlet包,下面创建TestServlet类6.2.2 编写一个Spring Boot的配置类,在该类中注册Servlet6.2.3 启动应用SpringBoot,浏览器访问测试七、使用Filter(了解)7.1 方式一 通过注解方式实现7.1.1 通过注解方式创建一个Filer7.1.2 修改Application类?7.1.3 创建controller7.1.4?启动应用SpringBoot,浏览器访问测试7.2 方式二 通过Spring Boot的配置类实现7.2.1 创建一个普通的Filter7.2.2 注册Filter7.2.3 启动应用SpringBoot,浏览器访问测试? 八、 Spring Boot 项目配置字符编码 ?8.1 方式一 使用传统的Spring提供的字符编码过滤器?1、Config中配置文件类,注册字符编码过滤器 ?2、在application.properties中设置spring.http.encoding.enabled=false 8.2 方式二 在application.properties中配置字符编码(推荐)?从 springboot 1.4.2 之后开始新增的一种字符编码设置 # 设置请求响应的字符编码 九、 Spring Boot打包与部署9.1 Spring Boot程序war包部署9.1.1 创建Spring Boot Web项目9.1.1.1 创建一个新的Module,_11-springboot-war01 ?? 9.1.1.2 在pom.xml文件中配置内嵌Tomcat对jsp的解析包
9.1.1.3 在application.properties配置文件中配置内嵌Tomcat端口号及上下文根和jsp的前后缀 # 内嵌tomcat的配置 9.1.1.4 创建TestController提供方法分别返回字符串及跳转页面 ? 9.1.1.5 浏览器输入地址访问测试 ? 9.1.2 打War包9.1.2.1 程序入口类同级路径下创建ServletInitializer类(有则不用创建) 9.1.2.2 在 pom.xml中添加(修改)打包方式为war 9.1.2.3 在 pom.xml中配置springboot打包的插件(默认自动加) 9.1.2.4 通过Maven package命令打war包到target目录下 ? 9.1.3 部署到Tomcat服务器上测试运行9.1.3.1 将target目录下生成的war包拷贝到tomcat的webapps目录,并启动tomcat ? 启动tomcat 9.1.3.2 通过浏览器访问 ????? 9.2 Spring Boot程序打Jar包与运行????????因为SpringBoot默认的打包方式就是jar包,所以我们直接执行Maven的package命令就行了,这里我们以01-springboot-first为例 9.2.1 通过Maven package命令打jar包到target目录下将target下的jar包拷贝到某一个目录,在该目录下执行 java -jar 01-springboot-first-0.0.1-SNAPSHOT.jar ? 9.2.2 浏览器访问测试9.3 Spring Boot部署与运行方式总结1、在IDEA中直接运行Spring Boot程序的main方法(开发阶段) 2、用maven将Spring Boot安装为一个jar包,使用Java命令运行 java -jar springboot-xxx.jar 可以将该命令封装到一个Linux的一个shell脚本中(上线部署)
3、使用Spring Boot的maven插件将Springboot程序打成war包,单独部署在tomcat中运行(上线部署 常用) ? 十、Spring Boot 集成 Thymeleaf 模板10.1 认识ThymeleafThymeleaf是一个流行的模板引擎,该模板引擎采用Java语言开发 ? 模板引擎是一个技术名词,是跨领域跨平台的概念,在Java语言体系下有模板引擎,在C#、PHP语言体系下也有模板引擎,甚至在JavaScript中也会用到模板引擎技术,Java生态下的模板引擎有 Thymeleaf 、Freemaker 等。 ? Thymeleaf 对网络环境不存在严格的要求,既能用于Web环境下,也能用于非Web环境下。在非Web环境下,他能直接显示模板上的静态数据;在Web环境下,它能像Jsp一样从后台接收数据并替换掉模板上的静态数据。它是基于HTML的,以HTML标签为载体,Thymeleaf要寄托在HTML标签下实现。 ? Spring Boot 集成了Thymeleaf模板技术,并且Spring Boot官方也推荐使用Thymeleaf来替代JSP技术,Thymeleaf是另外的一种模板技术,它本身并不属于Spring Boot,Spring Boot只是很好地集成这种模板技术,作为前端页面的数据展示,在过去的Java Web开发中,我们往往会选择使用Jsp去完成页面的动态渲染,但是jsp需要翻译编译运行,效率低 ? Thymeleaf的官方网站:Thymeleaf ? Thymeleaf官方手册:Tutorial: Using Thymeleaf 10.2 Spring Boot集成Thymeleaf10.2.1 创建Spring Boot项目_12-sprinboot-thymeleaf,添加web和Thymeleaf依赖创建后,pom.xml文件下会自动添加如下依赖 10.2.2 在Spring boot的核心配置文件application.properties中对Thymeleaf进行配置? 10.2.3 创建ThymeleafControlle去映射到模板页面(和SpringMVC基本一致)?在com.springboot.controller目下创建ThymeleafController类 ? 10.2.4 在src/main/resources的templates下新建一个test02.html页面用于展示数据? 11.2.5 启动程序,浏览器访问10.3 Thymeleaf的表达式10.3.1 标准变量表达式10.3.1.1 语法 ${...} 10.3.1.2 说明 标准变量表达式用于访问容器(tomcat)上下文环境中的变量,功能和EL中的 相同。中的变量表达式使用?{变量名} 的方式获取Controller中model其中的数据 10.3.1.3 案例演示 1、在com.springboot.model包下创建User实体类 ?2、在ThymeleafController中添加userInfo方法中,向model放入User对象 3、test02.html通过选择变量表达式获取用户数据 ? 4、启动服务,浏览器访问 10.3.2 选择变量表达式10.3.2.1 语法:*{...}? 10.3.2.2 说明 选择变量表达式,也叫星号变量表达式,使用 th:object 属性来绑定对象 选择表达式首先使用th:object来邦定后台传来的User对象,然后使用 * 来代表这个对象,后面 {} 中的值是此对象中的属性。 选择变量表达式 *{...} 是另一种类似于标准变量表达式 ${...} 表示变量的方法 选择变量表达式在执行时是在选择的对象上求解,而${...}是在上下文的变量Model上求解,这种写法比标准变量表达式繁琐,只需要大家了解即可 10.3.3 URL表达式10.3.3.1 语法@{...} 10.3.3.2 说明 ? 主要用于链接、地址的展示,可用于 <script src="...">、<link href="...">、<a href="...">、<form action="...">、<img src="">等,可以在URL路径中动态获取数据 10.4 Thymeleaf 的常见属性?10.4.3 th:value? 10.4.4 th:attr该属性也是用于给HTML中某元素的某属性赋值,但该方式写法不够优雅 ?10.4.5 th:text用于文本的显示,该属性显示的文本在标签体中,如果是文本框,数据会在文本框外显示,要想显示在文本框内,使用th:value 10.4.6?th:onclick? 点击事件 ?10.4.7 th:each这个属性非常常用,比如从后台传来一个对象集合那么就可以使用此属性遍历输出,它与JSTL中的<c: forEach>类似,此属性既可以循环遍历集合,也可以循环遍历数组及Map 10.4.7.1 遍历List集合
?10.4.7.2 遍历Map集合 10.4.8 条件判断10.4.8.1 th:if 10.4.8.2 th:unless ?10.4.8.3 th:switch/th:case 10.4.9 th:inlineth:inline 有三个取值类型 (text, javascript 和 none) ? 10.4.9.1 内敛文本(th:inline=”text”) 10.4.9.2 内敛脚本(th:inline=”javascript”) 10.5 Thymeleaf字面量Thymeleaf中的字面量分为以下几种: 1.文本字面量,例如张三等;需要使用单引号括起来,可以使用+进行字符串拼接 2.数字字面量,例如20,23,-12,-190等,可以使用算数运算符进行运算,例如+-*%/ 3.布尔字面量,取值只有true和false 4.null字面量,取值为null,通常判断一个对象是否为null,例如${user==null} 10.6 Thymeleaf 字符串拼接10.7 Thymeleaf运算符算术运算:+ , - , * , / , % 关系比较: > , < , >= , <= ( gt , lt , ge , le ) 相等判断:== , != ( eq , ne ) 10.8 Thymaleaf表达式基本对象模板引擎提供了一组内置的对象,这些内置的对象可以直接在模板中使用,这些对象由#号开始引用,我们比较常用的内置对象 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 12:16:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |