十六SpringBoot2核心技术——整合jsp
Posted 上善若水
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十六SpringBoot2核心技术——整合jsp相关的知识,希望对你有一定的参考价值。
一、整合jsp
1.1、添加依赖
<dependencies>
<!--springboot整合web框架起步依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--
引入springboot内嵌tomcat对jsp的解析依赖,不添加,解析不了jsp。
仅仅只是展示jsp页面,只添加以下一个依赖
-->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
</dependencies>
如果需要添加其他依赖,比如jstl、servlet等,可以参考如下依赖配置:
<!--如果要使用servlet,必须添加以下两个依赖-->
<!--servlet依赖的jar包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!--如果使用JSTL必须添加该依赖-->
<!--jstl标签依赖的jar包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
1.2、新建webapp目录,并对该目录进行设置
1.src/main目录下,新建webapp文件夹。并设置为web目录。
1.3、在pom.xml的build标签中要配置以下信息
spring boot要求jsp文件必须编译到指定的META-INF/resources
目录下才能访问,否则访问不到。其实官方已经更建议使用模板技术(thymeleaf)。
<build>
<!--
springboot项目默认推荐使用的前端引擎时thymeleaf,现在我们要使用springboot集成jsp,
手动指定jsp最后编译的路径。而且springboot集成jsp、编译jsp的路径是springboot规定好的位置
META-INF/resources
-->
<resources>
<resource>
<!--源文件夹-->
<directory>src/main/webapp</directory>
<!--指定编译到 META-INF/resources -->
<targetPath>META-INF/resources</targetPath>
<!--指定源文件夹中的哪个资源要编译进行-->
<includes>
<include>**/*.*</include>
</includes>
</resource>
</resources>
<!--springboot编译打包插件-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1.4、在application.yml文件配置SpringMVC的视图展示为jsp,这里相当于Spring MVC的配置
# springboot核心配置文件
# 指定内嵌 tomcat 端口号
server:
port: 8081
servlet:
context-path: / # 指定上下文根,默认 /
# 配置SpringMVC视图解析器
# 其中: / 表示目录为 src/main/webapp
spring:
mvc:
view:
prefix: /
suffix: .jsp
1.5、编写controller类
package com.xbmu.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class JspController {
@RequestMapping(value = "/springboot/jsp")
public String jsp(Model model){
model.addAttribute("data","SpringBoot 前端使用 JSP 页面");
return "index";
}
}
1.6、编写index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>SpringBoot 前端使用 JSP 页面</title>
</head>
<body>
${data}
</body>
</html>
1.7、编译,打包,启动服务
以上是关于十六SpringBoot2核心技术——整合jsp的主要内容,如果未能解决你的问题,请参考以下文章
二十一SpringBoot2核心技术——整合activiti7
十九SpringBoot2核心技术——整合Alibaba Dubbo