Spring Boot (五) jsp支持

前面我们说过Spring Boot的部署方式,可以通过jar和war包两种,其中打成jar包通过java -jar方式启动是不支持jsp的,所以若要在Spring Boot中使用jsp,需要打成war包部署到web容器中。

1.pom文件配置

<packaging>war</packaging>

<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>
            <!-- 打包将不会吧这个包打进去 -->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
    </dependencies>

设置为达成wa包,添加jsp所需要的依赖,且spring-boot-starter-tomcat依赖的作用域设置为provided,表示打包不会将这个依赖打进去。

2.继承SpringBootServletInitializer

因为为要打war包运行在外部tomcat中所以,需要继承SpringBootServletInitializer重写configure方法

@SpringBootApplication
public class SpringbootLearnDemo3DevtoolsApplication extends SpringBootServletInitializer {
    
    

    public static void main(String[] args) {
    
    
        SpringApplication.run(SpringbootLearnDemo3DevtoolsApplication.class, args);
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    
    
        return builder.sources(SpringbootLearnDemo3DevtoolsApplication.class);
    }
}

3.application.yaml配置

spring:
  mvc:
    view:
      prefix: /template/ #jsp位置
      suffix: .jsp  # 后缀名

6.controller

@Controller
public class IndexController {
    
    
    @RequestMapping("/index")
    public String index(Model model) {
    
    
        model.addAttribute("say", "hello jsp");
        return "index";
    }
}

5.jsp的位置

jsp如果放到resources目录及其子目录里面默认是访问不到的。
解决方案:将其设置成web资源目录,如下:
在这里插入图片描述

File -->Project Structure
按照下图顺序进行配置
在这里插入图片描述
重启项目访问:

在这里插入图片描述
现在我们再次按照上图方式在resources同级目录配置一个webapp目录,这时候转发的是哪个jsp呢?
在这里插入图片描述
目录结构如下:

在这里插入图片描述
重启项目,再次访问:
在这里插入图片描述
显示的是resource目录下的jsp;
在这里插入图片描述

现在修改上图中配置的顺序,将webapp路径放入第一条,resources路径放入第二条。
在这里插入图片描述
可见jsp路径的优先级,是根据配置的先后顺序,配置在前面的优先级更高。

猜你喜欢

转载自blog.csdn.net/qq_36706941/article/details/108604847