对于JSP相信大家都不陌生,无论是在学校学习,还是工作中,多多少少都会接触到一些,那么如何在SpringBoot应用中使用JSP模板呢?Easy~
首先,我们在pom文件中添加web依赖及jsp支持,如下:
<dependencies>
<!-- web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 添加jsp依赖支持 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
其次,我们来到SpringBoot配置文件application.yml中添加视图解析器的前缀和后缀,如下:
spring:
mvc:
view:
prefix: /WEB-INF/page/ #配置视图解析的前缀
suffix: .jsp #配置视图解析的后缀
server:
port: 80
这里可以看到,我配置的视图解析器的前缀为/WEB-INF/page/,我们在与resources同级目录下创建webapp目录,然后在webapp下创建/WEB-INF/page/目录,最终目录结构如下图所示:
接着编写我们的测试控制器,其内容如下:
/**
* @Description JSP测试控制器
* @Auther: 笑笑
* @Date: 14:38 2019/10/26
*/
@Controller
public class JspTestController {
private static final String INDEX_PAGE = "index";
/**
* 首页跳转测试
* @param model
* @return
*/
@GetMapping(value = "/index")
public String index(Model model){
model.addAttribute("jsp","Hello Jsp!");
return INDEX_PAGE;
}
}
index.jsp中的内容很简单,使用EL表达式把我们放入Model域对象中的数据取出来,如下:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>JSP 测试</title>
</head>
<body>
<%-- 使用EL表达式取值 --%>
${jsp}
</body>
</html>
最后启动我们的应用程序,由于我配置了80端口,浏览器访问http://localhost/index,结果如下:
可以看到,我们的JSP页面访问成功!是不是很简单呢~
虽然我们的JSP页面成功被访问,但无论是SpringBoot官方还是我(这样放一起,顿时感觉自己好牛逼!)都不建议大家使用JSP模板,因为JSP的本质其实是一个servlet(Java类),它先要经过转译和编译的步骤,才能输出页面的内容,速度上有所欠缺,但一些传统的项目还在使用,所以也有学习的必要~
你还在等什么,赶紧动手尝试一下吧!
源码地址:
https://github.com/devilyang123/SpringBoot-Learning/tree/master/springboot-jsp
欢迎关注我的个人公众号“笑笑是一个码农”,第一时间获取最新文章。
您的关注,就是支持我持续写作的最大动力!
还可以免费领取前后端全站学习视频资料呦~
个人微信号,如需添加微信,请备注来源,因为妈妈从小就告诉我不要随便跟陌生人聊天!(嘿嘿~)