[英]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.