Spring Boot使用方法小札(1):Web应用返回jsp页面

本文介绍如何在Spring Boot项目中配置并使用JSP页面,包括两种常见方案:一是直接在项目中使用JSP,二是通过特定目录结构在打包后支持JSP。文中详细解释了所需的依赖及配置步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.youkuaiyun.com/lmy86263/article/details/51622522

 

直接使用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需要我们手动导入。如果还要使用jstl库,也可以继续导入:

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

1、在工程中返回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
1
2
这与只使用SpringMVC时的配置十分类似,而且可以看出使用的是InternalResourceViewResolver视图解析器。使用代码测试一下:

@Controller
public class SpringBootController {
    @RequestMapping("/")
    public String index(){
        return "welcome";
    }
}

以上会返回/src/main/WEB-INF/jsp/welcome.jsp视图。
但是,返回页面只是在eclipse这种IDE中直接运行Spring Boot程序时会起作用,如果打包成jar包后是不会包含我们创建的WEB-INF/jsp目录的,也就没有我们定义的jsp页面,所以会返回404状态码,所以这种方法实际上是没有什么意义的,个人感觉(没用你还说什么!!只是提出一种解决方式。。)

2、在打包后返回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中存储的数据了。

 

jar包目录

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值