5、SpringBoot整合JSP

步骤

  1. 创建项目
  2. 修改POM文件,添加JSP引擎与JSTL标签库
  3. 创建webapp目录
  4. 标记为web目录
  5. 创建jsp

注意:在springboot项目中是不推荐使用jsp作为视图层技术的

JSP是在tomcat里面编译、运行的;
以往的web项目是将项目部署的tomcat容器当中,tomcat负责将JSP编译成servlet并将其执行,而负责处理这个过程的句式jsp引擎;
虽然SpringBoot中内嵌了一个tomcat容器,但是却没jsp引擎,所以SpringBoot内嵌的tomcat是不能处理jsp的;
所以如果想在SpringBoot项目中使用jsp就必须要添加jsp引擎的相关依赖;

所以如果想在SpringBoot项目中使用jsp就必须要添加jsp引擎的相关依赖,如下:

<!--添加jsp引擎,SpringBoot内置的tomcat中没有此依赖-->
<dependency>
   <groupId>org.apache.tomcat.embed</groupId>
   <artifactId>tomcat-embed-jasper</artifactId>
</dependency>


<!--添加jstl坐标依赖-->
<dependency>
   <groupId>javax.servlet</groupId>
   <artifactId>jstl</artifactId>
</dependency>

JSP文件存放位置

添加好相关依赖后应该考虑jsp应该存放在什么样的目录下:jsp页面应该存放于“webapp”的目录下WEB-INF;
webapp目录应该存放于main目录下,并与java,resources目录同一级别的位置

标记webapp,使该目录支持web技术

选中webapp后点击图片中红色框的部分

选择Modules

选择对应的项目名,然后选择web,然后点击Web Resource Directories下的“+” 号,指定webapp为路径

指定webapp为支持web技术的目录之后,该目录的图标会增加一个点

这个时候右键就有创建jsp页面的快捷方式了

创建一个jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>hello!</h1>
</body>
</html>

WEB-INF目录是受保护的不能直接访问,可以通过controller进行访问;
通过视图解析器跳转到jsp页面;
web启动器包含了Spring Mvc的组件(视图解析器)

所以直接配置视图解析器的配置即可
前缀不用指定webapp

spring.mvc.view.prefix=/WEB_INF/
spring.mvc.view.suffix=.jsp

编写controller

/**
* 页面跳转的controller
*/
@Controller
public class PageController {

    /**
     * 页面跳转
     */
    @GetMapping("/{page}")
    public String showPage(@PathVariable String page){
        return page;
    }
}

通过url:localhost:8080/index 访问

如果该项目是一个聚合项目则通过 localhost:8080/index访问会发生404
则需要多一些配置:点击Edit Configurations

选择对应的项目选择%Module_WORKING_DIR%

通过url:localhost:8080/index 访问即可

原文地址:https://www.cnblogs.com/Ryuichi/p/13446768.html