首页
学习
活动
专区
圈层
工具
发布

深入Spring Boot (十二):集成JSP

之前在编写《深入Spring Boot (八):模板引擎使用详解》的时候有考虑过介绍如何集成JSP,但是在细看官方的文档及考虑实际使用情况后,将这个想法取消了,因为在使用嵌入式servlet容器时,会有一些已知的限制,所以Spring Boot不建议使用JSP,而且现在也很少用JSP作前端页面显示使用了。最近有朋友集成JSP时遇到了一些意想不到的问题,这里简单分享一下JSP的集成。

代码实践

话不多说,直接上代码。依赖管理pom.xml,需要添加servlet和嵌入式tomcat运行jsp需要的jar,详细依赖配置如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>

   <groupId>springboot-jsp</groupId>
   <artifactId>test</artifactId>
   <version>1.0-SNAPSHOT</version>

   <parent>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-parent</artifactId>
       <version>2.0.0.RELEASE</version>
   </parent>

   <dependencies>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-web</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
       </dependency>
       <dependency>
           <groupId>org.apache.tomcat.embed</groupId>
           <artifactId>tomcat-embed-jasper</artifactId>
       </dependency>
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-test</artifactId>
           <scope>test</scope>
       </dependency>
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>javax.servlet-api</artifactId>
       </dependency>
       <dependency>
           <groupId>javax.servlet</groupId>
           <artifactId>jstl</artifactId>
       </dependency>
   </dependencies>

</project>

因为jsp资源的默认存放路径是webapp,所以需要新建webapp目录,示例是将jsp文件放到webapp/WEB-INF/jsp路径下,因此在webapp下新建WEB-INF目录,接着在WEN-INF目录下新建jsp目录,在jsp下新建hello.jsp,完整目录结构及代码如下:

代码语言:javascript
复制
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html lang="en">
    <body>
    <br>
        Message: ${message}
    </body>
</html>

在resources目录下新建application.properties,在其中添加jsp资源配置,具体配置如下:

代码语言:javascript
复制
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

新建HelloController.java,用于处理http请求,具体代码如下:

代码语言:javascript
复制
@Controller
@EnableAutoConfiguration
public class HelloController {

    @RequestMapping("/hello")
    public String hello(Map<String, Object> map) {
        map.put("message", "HelloWorld");
        return "hello";

    }

    public static void main(String[] args) throws Exception {
        SpringApplication.run(HelloController.class, args);
    }

}

END

下一篇
举报
领券