Java 在spring中找不到JSP文件是错误吗
在我的应用程序中,我遵循了SpringBoot的官方文件和包结构。但我仍然得到一个白标签页面错误。大多数答案和建议都不能解决这个问题 这可能是spring boot中的错误吗 下面是我如何放置代码以及如何排列文件和文件夹的结构 Application.javaJava 在spring中找不到JSP文件是错误吗,java,spring,spring-boot,spring-mvc,jsp,Java,Spring,Spring Boot,Spring Mvc,Jsp,在我的应用程序中,我遵循了SpringBoot的官方文件和包结构。但我仍然得到一个白标签页面错误。大多数答案和建议都不能解决这个问题 这可能是spring boot中的错误吗 下面是我如何放置代码以及如何排列文件和文件夹的结构 Application.java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.r
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
控制器
@Controller
public class UserController {
@RequestMapping("/")
public String index(HttpServletRequest request){
request.setAttribute("mode", "MODE_HOME");
return "homepage";
}}
homepage.jsp
<body>
<c:choose>
<c:when test="${mode=='MODE_HOME'}">
<h1>Mambo, This is home page </h1>
</c:when> </c:choose>
</body>
pom.xml
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
<?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.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.samaritan</groupId>
<artifactId>samaritanweb</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>samaritanweb</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>11</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
org.springframework.boot
NB:使用Visual Studio代码版本1.52.1您需要指定控制器要接收的请求(GET、POST等)
或
您需要指定控制器要接收的请求(GET、POST等)
或
试着像这样改变你的主课
@springboot应用程序
公共类应用程序扩展了SpringBootServletInitializer{
@凌驾
受保护的SpringApplicationBuilder配置(SpringApplicationBuilder){
返回生成器.sources(Application.class);
}
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
}
尝试像这样更改主类
@springboot应用程序
公共类应用程序扩展了SpringBootServletInitializer{
@凌驾
受保护的SpringApplicationBuilder配置(SpringApplicationBuilder){
返回生成器.sources(Application.class);
}
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
}
任何事情都是可能的,但除非你有明确的证据证明它是Spring bug,否则最好假设它不是Spring bug。Sir@StephenC你是wright,只是我在不同的帖子中尝试用几乎所有的答案和建议来解决它,但都没有成功。有点stuck@StephenC想象一下,你可能有一个项目工作正常,但在重新启动系统并再次使用应用程序后,你会看到白色标签错误页面。任何事情都是可能的,但明智的做法是假设它不是Spring bug,除非你有明确的证据证明它是。Sir@StephenC you's wright,只是我尝试解决了这个问题,在不同的帖子里,几乎所有的答案和建议都没有成功。有点stuck@StephenC想象一下,您可能有一个项目工作正常,但在重新启动系统并再次使用应用程序后,您会看到白色标签错误页面尝试了上述两个选项,但相同的错误尝试了上述两个选项,但相同的错误我已尝试按照您的建议更改主类,但仍然是相同的错误复制你的例子,它的工作。但是您的pom.xml中也有一个错误:将最后一个标记替换为我这边的类似标记,它过去工作正常,但在我重新启动PC并使用午餐后,应用程序会弹出错误窗口。抱歉,输入错误。已更改。这很奇怪。您是否检查处理请求的流程(使用jps或ps aux)?也许还有另一个tomcat实例,它的旧版本应用程序是从你的电脑开始的?尝试在application.properties中添加server.port=9999(例如),并检查localhost:9999。此外,您还可以清理maven本地存储库如何使用VSCode清理maven本地存储库?我已尝试按照您的建议更改main类,但仍然存在相同的错误。我复制了您的示例,它可以正常工作。但是您的pom.xml中也有一个错误:将最后一个标记替换为我这边的类似标记,它过去工作正常,但在我重新启动PC并使用午餐后,应用程序会弹出错误窗口。抱歉,输入错误。已更改。这很奇怪。您是否检查处理请求的流程(使用jps或ps aux)?也许还有另一个tomcat实例,它的旧版本应用程序是从你的电脑开始的?尝试在application.properties中添加server.port=9999(例如),并检查localhost:9999。您还可以清理maven本地存储库如何使用VSCode清理maven本地存储库?
@Controller
public class UserController {
@RequestMapping("/", method = RequestMethod.GET)
public String index(HttpServletRequest request){
request.setAttribute("mode", "MODE_HOME");
return "homepage";
}}
@Controller
public class UserController {
@GetMapping("/")
public String index(HttpServletRequest request){
request.setAttribute("mode", "MODE_HOME");
return "homepage";
}}