无法使用spring-boot加载一个非常简单的JSP页面,获得404 Not Found。
的src /主/爪哇/ SampleWebJspApplication.java
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class SampleWebJspApplication extends SpringBootServletInitializer {
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleWebJspApplication.class, args);
}
}
的src /主/爪哇/ WebController.java
@Controller
public class WebController {
@RequestMapping("/")
public String welcome() {
return "welcome";
}
}
的src /主/ web应用/ WEB-INF / JSP /的welcome.jsp
<!DOCTYPE html>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">
<body>
<h1>Hello.</h1>
</body>
</html>
获得404即使调试器显示从Controller RequestMapping返回“welcome”。
Whitelabel错误页面
这个应用程序没有/ error的显式映射,所以你看到了 这是一个后备。
2007年3月7日星期六19:35:15 2015年出现意外错误(类型=不是 找到了,状态= 404)。
答案 0 :(得分:3)
我已经尝试了很多解决方案,但找不到合适的解决方案。
如果您正在使用 Intellij IDEA 并在阅读本文的同时阅读本文:请勿尝试使用IDE运行来运行Spring Boot应用程序(带有动态.jsp视图) ︎按钮。
$ cd {your_project_folder_path}
$ ls //Check if you are in the same place with the pom.xml
然后输入
$ mvn spring-boot:run
现在,您的申请已在localhost:8080
提供。
答案 1 :(得分:1)
我需要将其添加到 application.properties 文件中:
spring.view.prefix: /WEB-INF/jsp/
spring.view.suffix: .jsp
答案 2 :(得分:1)
在最新的spring版本中,要放在application.properties文件中的属性如下所示:
spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp
注意“spring.view.prefix”中包含的“mvc”
此外,在较新版本的Spring中,@SpringBootApplication
,@Configuration
,@EnableAutoConfiguration
@ComponentScan
答案 3 :(得分:0)
正常情况下,除了在使用Thymeleaf时添加依赖项外,Spring启动不需要任何配置。
要在Spring Boot中运行JSP,您必须有一些配置:
需要依赖性:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
如果您正在连接MySQL数据库,那么:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
在Application.Properties文件中:
spring.mvc.view.prefix: /WEB-INF/jsp/
spring.mvc.view.suffix: .jsp
现在你的好去! :d