簡體   English   中英

JSP 文件未在 Spring 引導應用程序中呈現

[英]JSP file not rendered in Spring Boot application

I have a Spring Boot web application that reads index.jsp and uses tomcat jasper to support JSP. 但是,該頁面顯示為“出現意外錯誤(類型=未找到,狀態=404)。” 我懷疑問題在於依賴關系。

pom.xml

 <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.1.RELEASE</version> <relativePath/> <.-- lookup parent from repository --> </parent> <groupId>com.Alex</groupId> <artifactId>WebApp</artifactId> <version>0.0.1-SNAPSHOT</version> <name>WebApp</name> <description>Demo project for Spring Boot</description> <properties> <java.version>14</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework:boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <.-- https.//mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jasper</artifactId> <version>9.0.35</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>

索引.jsp

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html> <html> <head> <meta charset="ISO-8859-1"> <title>Insert title here</title> </head> <body> Hello this shit works </body> </html>

該方法在 print 語句執行時運行

@Controller
public class indexController {

// Tomcat Jasper to return jsp files
@RequestMapping("index")
public String getIndex() {
    System.out.println("test1");
    return "index.jsp";
}

文件結構

在此處輸入圖像描述

在您的pom文件中添加此依賴項和其他(如 web )。

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
        </dependency>

application.properties文件中為文件位置添加此配置屬性( Your.jsp 文件位置在 class 路徑中

屬性配置:

        spring.mvc.view.prefix = /WEB-INF/views/
        spring.mvc.view.suffix =.jsp
        spring.mvc.static-path-pattern=/resources/**

或者

Class 級別配置:

        @Configuration
        @EnableWebMvc
        @ComponentScan(basePackages= {"com.imran"})
        public class WebConfig implements WebMvcConfigurer {

            public void configureViewResolvers(ViewResolverRegistry registry) {
                registry.jsp().prefix("/WEB-INF/views/").suffix(".jsp");
            }
            public void addResourceHandlers(ResourceHandlerRegistry registry) {
                registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
            }


        }

並且您的 controller 將是這樣的(沒有 out.jsp 擴展名,只是文件名):

        @Controller
        public class indexController  {
            
            @RequestMapping(value = "/index", method = RequestMethod.GET)
            public String getIndex() {
                System.out.println("test1");
                return "index";
            }

        }

如果需要,您可以從 這里獲得一些幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM