SpringBoot项目中使用.jsp作为页面

SpringBoot项目中使用.jsp作为页面

SpringBoot 不建议使用jsp,会出现很多问题, 但是在做项目的时候可能还需要使用jsp。如果使用idea有的时候不能访问webapp目录,因此下边的jsp也就是不能被访问到了,出现404错误。

如果是单独的一个项目是没有问题,按照如下修改就行了。

1. 引入依赖pom.xml


<dependency>
    <groupId>javax.servletgroupId>
    <artifactId>jstlartifactId>
dependency>

	<dependency>
      <groupId>org.springframework.bootgroupId>
      <artifactId>spring-boot-starter-webartifactId>
    dependency>

    <dependency>
      <groupId>org.apache.tomcat.embedgroupId>
      <artifactId>tomcat-embed-jasperartifactId>
      <version>9.0.6version>
    dependency>

  
      
      
    

2. 属性配置文件application.yml 增加视图解析器

页面默认前缀目录与页面默认后缀目录

spring:
  mvc:
    view:
      prefix: /WEB-INF/jsp/  #WEB-INF文件夹只能通过后台api跳转才能访问,如果想直接访问就不要放WEB-INF
      suffix: .jsp

3.把jsp页面放进webapp/WEB-INF/jsp/文件夹里面,然后写后台api测试

注意:webapp文件夹必须和resources和main同级目录

后台api

@GetMapping("/")
    public ModelAndView logins() {
        ModelAndView view = new ModelAndView();
        view.setViewName("login");   //经过视图解析器解析成 login.jsp 页面
        return view;
    }

一个项目下的模块访问不到jsp页面,报404

如果一个项目下模块是web,采用这个方式直接运行依然找不到webapp目录,采取的方式是如下:

是因为tomcat找不到webapp目录,所以写个tomcat配置类指定目录:

import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.AbstractServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.io.File;

@Configuration
public class TomcatConfig {

    @Bean
    public AbstractServletWebServerFactory embeddedServletContainerFactory() {
       
        TomcatServletWebServerFactory tomcatServletWebServerFactory = new TomcatServletWebServerFactory();
        tomcatServletWebServerFactory.setDocumentRoot(
                new File("G:\\shiro-demo\\spring-boot-demo-shiro-base\\spring-boot-demo-shiro-4\\src\\main\\webapp")); //我这里采用的是写死方式
        return  tomcatServletWebServerFactory;
    }
}

这样就能访问到了!

扩展资料:

Springboot2.x配置thymeleaf和jsp双视图解析器

你可能感兴趣的:(SpringBoot,Java)