当前位置: 首页 > 知识库问答 >
问题:

在spring中找不到JSP文件会是一个错误吗

仲孙宇定
2023-03-14

我在应用程序中遵循了spring boot的官方文件和包结构。但我仍然收到一个白标签页面错误。大多数答案和建议都不能解决这个问题。

这可能是spring boot中的错误吗?

下面是我如何放置代码以及文件和文件夹的排列结构。

应用Java语言

@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";
 }}

主页jsp

 <body>
 <c:choose>
 <c:when test="${mode=='MODE_HOME'}">
 <h1>Mambo, This is home page </h1>
 </c:when> </c:choose>
 </body>

应用属性

 spring.mvc.view.prefix=/WEB-INF/view/
 spring.mvc.view.suffix=.jsp

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.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>

注意:使用Visual Studio代码1.52.1版

共有2个答案

朱承载
2023-03-14

试着像这样改变你的主类

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}
锺离飞尘
2023-03-14

您需要指定控制器要接收的请求(GET、POST等)。

@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";
 }}
 类似资料:
  • 我目前正在学习Spring/Spring Boot,我正在尝试编写忘记密码功能。我的所有其他功能,如登录等,都按预期工作,但由于某种原因,重定向到重置密码页面不起作用,并给我带来以下错误,其中它查找带有奇怪前缀的jsp。 有一个意外的错误(type=未找到,status=404)。 找不到JSP文件[/reset-password/WEB-INF/JSP/reset-password.JSP] 我

  • 当运行一个Spring Boot项目(java-jar /path/to/war.war)时,找不到. jsp文件。 用@响应体注释的方法工作正常。视图解析器正在想出JSP页面的正确路径,但是找不到它们。这个项目只有一个配置类,没有web.xml. 配置类: 控制器 错误日志 2013-11-25 09:08:28.714错误1549---[tp1945397783-20]组织。阿帕奇。贾斯珀。s

  • 在我的Spring Boot应用程序中,我从Thymeleaf切换到JSP,它在我的本地计算机上正常工作,但当我将它上传到Heroku服务器时,我发现出现了一个意外错误(type=notfound,status=404)/WEB-INF/jsp/home。jsp 它的罐子打包,如果它在本地工作,但不是在Heroku服务器上,这意味着什么?

  • 这就是错误- 在/users/chetan/.pub-cache/hosted/pub.dartlang.org/webview_flutter-1.0.7/iOS/classes/javascriptchannelhandler.m:5://users/chetan/.pub-cache/hosted/pub.dartlang.org/webview_flutter-1.0.7/iOS/clas

  • 我通过遵循这个Google Drive File Picker示例演示项目来使用Google Drive File Picker。我已经生成了API Key和Client Id。但是当我运行项目时,我遇到了以下错误 错误:无效_client 未找到 OAuth 客户端。 我也检查了这个谷歌驱动器文件选择器的例子链接,但它不工作,请帮我解决我的问题。 google oauth2中的_client无效

  • 问题内容: 即使激活了所有“应用程序开发功能”,我也正在使用“ Internet信息服务7.5”上的AJAX调用来获取JSON文件的“ ERROR 404.3 Not Found”。除JSON文件外,所有其他文件都将被加载。 我在本地计算机上的IIS服务器上运行HTML页面。 如果我直接打开文件,则完全没有问题。当我将文件托管在在线服务器上时,它可以正常工作。 任何快速帮助将不胜感激。 问题答案: