Java实战技术

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

2018-11-13  本文已影响0人  JavaQ

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

代码实践

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

<?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,完整目录结构及代码如下:

image
<!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资源配置,具体配置如下:

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

spring.mvc.view.suffix=.jsp

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

@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

如果觉得有收获,记得关注、点赞、转发。

image
上一篇 下一篇

猜你喜欢

热点阅读