写点什么

java 培训如何让 SpringBoot 支持 Jsp

作者:@零度
  • 2022 年 6 月 13 日
  • 本文字数:1220 字

    阅读完需:约 4 分钟

SpringBoot 整合 JSP 的问题,我这里提供一种方法,分享给大家!



点击并拖拽以移动

​编辑

 

直接使用 SpringMVC 时配置访问 jsp 页面时很容易的事,但是由于 Spring Boot 使用内嵌的 servlet 容器,所以对 jsp 的支持不是很好,而且也不建议使用 jsp,但是为了满足这种返回 jsp 页面的需求同时又想享受 Spring Boot 免去各种配置的麻烦,经本人各种试验,给大家提供一种方法以供参考,在说明以下方法前首先声明所用的依赖如下:

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

</dependency>

<dependency>

<groupId>org.apache.tomcat.embed</groupId>

<artifactId>tomcat-embed-jasper</artifactId>

<scope>provided</scope>

</dependency>

spring-boot-starter-web 是用来支持 web 应用开发的,在导入之后会自动导入内嵌的 servlet 容器,比如 Tomcat,但是要注意的是此时并没有能解析 jsp 页面的 jasper 模块,由此可以看出内嵌的 servlet 容器并不是全部导入的,而是分模块部分导入的,Jasper 需要我们手动导入_java培训

如果还要使用 jstl 库,也可以继续导入:

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>jstl</artifactId>

</dependency>

在工程中返回 jsp 页面

由于 Spring Boot 的目录结构和普通的 Web 应用的目录结构是不同的,为了返回 jsp,首先要建立对应的 web 应用程序目录,在/src/main 下建立 WEB-INF/jsp 目录,形成/src/main/WEB-INF/jsp,然后将我们的 jsp 页面放在下面即可。

然后再继续配置 application.properties 文件,如下:

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

spring.mvc.view.suffix=.jsp

这与只使用 SpringMVC 时的配置十分类似,而且可以看出使用的是 InternalResourceViewResolver 视图解析器。使用代码测试一下:

@Controller

public class SpringBootController {

@RequestMapping("/")

public String index(){

return "welcome";

}

}

以上会返回/src/main/WEB-INF/jsp/welcome.jsp 视图。「但是」,返回页面只是在 eclipse、idea 这种 IDE 中直接运行 Spring Boot 程序时会起作用,「如果打包成 jar 包后是不会包含我们创建的 WEB-INF/jsp 目录的」,也就没有我们定义的 jsp 页面,所以会返回 404 状态码,所以我们还需要做到打包后,也能访问到 jsp 页面_java视频

在打包后返回 jsp 页面

如果想在打包后使用 java -jar ***.jar 来运行代码,就要使用如下这种方法,在/src/main/resources/中建立如下的目录 META-INF/resources/WEB-INF/jsp,然后 application.properties 的配置和第一种方法相同。但是这样在使用 mvn package 打包后会包含上面建立的目录,如下:



点击并拖拽以移动

​编辑

 

jar 包目录

这时使用 java -jar SpringBootTemplate-0.0.1-SNAPSHOT.jar 就可以愉快地部署应用程序了,顺便说一句,此时在 jsp 页面也可以使用 EL 表达式获取 Model 中存储的数据了。

或者是使用 maven 的 resource 配置,再打包时把 jsp 文件复制到 resource 目录。

通常我们在一些老项目中遇到的 xml sql 文件做法类似。

文章来源于业余草

用户头像

@零度

关注

关注尚硅谷,轻松学IT 2021.11.23 加入

IT培训 www.atguigu.com

评论

发布
暂无评论
java培训如何让SpringBoot支持Jsp_JAVA开发_@零度_InfoQ写作社区