视图count计数慢_SpringBoot视图层技术

springBoot整合Jsp

创建 Maven 项目

1、修改 pom.xml 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.sxt</groupId>
	<artifactId>06-springboot-view-jsp</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<!-- 父类 -->
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>1.5.9.RELEASE</version>
		<relativePath /> <!-- lookup parent from repository -->
	</parent>
	<!-- springBoot启动器 -->
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
		</dependency> 
		<!-- jasper -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
			<scope>provided</scope>
		</dependency>
	</dependencies>
</project>

2、添加全局配置文件

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

3、创建Controller

06653928d587dbaa89dfc29653f35ab7.png

4、启动类

ac98f630be78b1f5bc06d0a2442dd33c.png

5、在srcmainwebappWEB-INF下添加jsp页面

6a9c3a694dd46c891b70e47dfa6c6495.png

测试结果

875e50ae02662ea2a76e5bec9a1a6286.png

SpringBoot 整合 Thymeleaf

Thymeleaf是一个适用于Web和独立环境的现代服务器端Java模板引擎。

Thymeleaf的主要目标是为您的开发工作流程带来优雅的自然模板 - 可以在浏览器中正确显示的HTML,也可以用作静态原型,从而在开发团队中实现更强大的协作。

Spring推荐使用的也是 Thymeleaf。

Thymeleaf特点:

Thymelaef 是通过特定语法对 html 的标记做渲染。

创建Maven项目

1、修改pom.xml文件

9a2feb063ee758488fe7833a8e059d6f.png

2、使用 Thymeleaf ,存放视图的目录是在src/main/resources/Templates

26dd4d544b1d8b0cf61ae108d89f6678.png

Thymeleaf语法详解

1、字符串操作

变量输出与字符串操作

th:text,在页面中输出值

th:value,可以将一个值放入到 input 标签的 value 中。

Thymeleaf 内置对象

注意语法:

1,调用内置对象一定要用#

2,大部分的内置对象都以 s 结尾 strings、numbers、dates

${#strings.isEmpty(key)} 判断字符串是否为空,如果为空返回 true,否则返回 false

${#strings.contains(msg,'T')} 判断字符串是否包含指定的子串,如果包含返回 true,否则返回 false

${#strings.startsWith(msg,'a')} 判断当前字符串是否以子串开头,如果是返回 true,否则返回 false

${#strings.endsWith(msg,'a')} 判断当前字符串是否以子串结尾,如果是返回 true,否则返回 false

${#strings.length(msg)}返回字符串的长度

${#strings.indexOf(msg,'h')} 查找子串的位置,并返回该子串的下标,如果没找到则返回-1

${#strings.substring(msg,13)} ${#strings.substring(msg,13,15)} 截取子串,用户与 jdkString 类下 SubString 方法相同

${#strings.toUpperCase(msg)} ${#strings.toLowerCase(msg)}字符串转大小写。

cdd2bdeeb46ce9a1b7b3211d5dbddc69.png

测试

ab9569c0956ffbc48d3f0e291beafc3b.png

2、日期转换操作

${#dates.format(key)}格式化日期,默认的以浏览器默认语言为格式化标准

${#dates.format(key,'yyy/MM/dd')}按照自定义的格式做日期转换

${#dates.year(key)}     year:取年 

${#dates.month(key)}  Month:取月 

${#dates.day(key)}      Day:取日

3、条件判断

Controller

2329a9a47c58b4eaa8eed7155f42320c.png

html

63025178f49ef8ab23bffb6b6356e7ae.png

4、迭代遍历

语法:th:each="变量名 : ${遍历的集合}"

4.1、迭代对象

Controller

e661f38195981946689c53810f87f623.png

Html

cfcf0e4ca93bec39137387defc68dec7.png

th:each 状态变量

 状态变量属性 
	1,index:当前迭代器的索引 从 0 开始 
	2,count:当前迭代对象的计数 从 1 开始 
	3,size:被迭代对象的长度 
	4,even/odd:布尔值,当前循环是否是偶数/奇数 从 0 开始
	5,first:布尔值,当前循环的是否是第一条,如果是返回 true 否则返回 false 
	6,last:布尔值,当前循环的是否是最后一条,如果是则返回 true 否则返回 false

f394e52b5bfa981c38e6feb77b9cc40c.png

b3a90387bca0d4854cc5d778cc26e631.png
页面输出结果

4.2、th:each 迭代 Map

Controller

a0fdfa7a75a4cc6100a7151438ccbdc4.png

Html

c80c0c6171cb2326417b51800988a4b5.png

517d469cd1390083f1ac6abf32df9ab6.png

5、获取作用域对象中的数据

Controller

856edafe47a39a4aed777e95a44f751b.png

html

5516344d02f4d01a1fb91c29687f7f2a.png

399d77cda4e0be5a1b3a35de199245c1.png

URL表达式

Thymeleaf语法详解-URL表达式 

	URL 表达式
		th:href th:src
	url 表达式语法
		基本语法:@{}
绝对路径 
	<a th:href="@{http://www.baidu.com}">绝对路径</a><br/>

相对路径 
	1、相对于当前项目的根 相对于项目的上下文的相对路径
		<a th:href="@{/show}">相对路径</a>
	2、 相对于服务器路径的根 
		<a th:href="@{~/project2/resourcename}">相对于服务器的根</a>

在 url 中实现参数传递
	<a th:href="@{/show(id=1,name=zhagnsan)}">相对路径-传参</a>

在 url 中通过 restful 风格进行参数传递
	<a th:href="@{/path/{id}/show(id=1,name=zhagnsan)}"> 相 对 路 径 - 传 参 -restful</a>

th标签

th:text,在页面中输出值

th:value,可以将一个值放入到 input 标签的 value 中。

th:switch / th:case 与 Java 中的 switch 语句等效,有条件地显示匹配的内容。

th:field 常用于表单字段绑定

th:each="变量名 : ${遍历的集合}"

th:href   		 定义超链接,类似<a>标签的href 属性。value形式为@{/logout}

th:id            	 div id声明,类似html标签中的id属性。

th:if       	 	 条件判断。

th:replace      	  替换当前标签为模板的中标签

th:object		 用于表单数据对象绑定,将表单绑定到后台controller的一个JavaBean参数。常与th:field一起使用进行表单数据绑定

th:src            	 用于外部资源引入,类似于<script>标签的src属性,常与@{}一起使用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值