长大后想做什么?做回小孩!

0%

SpringBoot中使用JSP

SpringBoot内部对jsp的支持并不是很理想,而SpringBoot推荐的视图是Thymeleaf、FreeMarker。但是我更加喜欢使用jsp(因为我不会用Thymeleaf),所以学习一下SpringBoot中使用JSP视图。

创建项目:

创建项目没有太多特别的地方,要注意的是打包方式要选择打成war包

nd7tER.png

然后可以根据自己的需求选择预先加入工程的依赖,我这里选择了web、mysql、mybatis。

创建出来的项目目录:

nd7NU1.png

可以发现和上一篇文章《SpringBoot入门》创建的目录相比多了一个ServletInitializer类,打开这个类:

1
2
3
4
5
6
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringbootJspApplication.class);
}
}

发现它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器运行web项目时会自动加载并且装配(不使用SpringBoot内置的tomcat时也需要这个)。这是一个类似于web.xml配置的方式启动spring应用。

实现了SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据SpringbootJspApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。

完善项目目录:

之前MVC的时候jsp页面一般都放在/webapp/WEB-INF/jsp目录下,现在我依然沿用这种习惯的方式。

在main目录下创建/webapp/WEB-INF/jsp目录,springboot会自动的将webapp设置到Models中,webapp文件夹如果没有那个小蓝点的话,需要手动进行Models的设置哦。完善之后的目录:

ndvYhd.png


添加依赖:

添加jsp的maven依赖、jsp对servlet容器的支持、jsp中要用的jstl标签依赖。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!-- https://mvnrepository.com/artifact/org.apache.tomcat.embed/tomcat-embed-jasper -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

编写application.properties:

1
2
3
4
5
6
7
8
9
10
11
#DB连接四大参数
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123
#Mybatis配置
mybatis.type-aliases-package=nynu.li.springboot_jsp.pojo
mybatis.mapper-locations=nynu/lis/pringboot_jsp/dao/*dao.xml
#MVC的视图解析器,这两个属性很熟悉了
spring.mvc.view.prefix=/WEB-INF/jsp
spring.mvc.view.suffix=.jsp

编写后端代码:

Pojo、Controller、Service、Dao。。。和之前MVC时一样,进行简单的编写查询数据库中全部用户的信息,然后在jsp页面表格中展示。具体的代码就不在赘述了,不会的话,可以参考之前的文章。

直接点击启动类运行,两三秒就启动成功了!!!发起请求,一切正常!!!SpringBoot真的太简洁了!!!其他的框架Mybatis等等,只要整合了SpringBoot之后一切都变得明朗了!!!