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

Spring Boot应用程序找不到index.html

穆城
2023-03-14

我第一次手工将AngularJS和spring boot应用程序连接在一起。我遇到的问题是@RestController没有返回索引页:

@RestController
public class IndexController {

    @RequestMapping("/")
    public String index(){
        System.out.println("Looking in the index controller.........");
        return "index";
    }

}

目录:

它会继续呈现默认的404错误页面:

----------------更新1------------------

我添加了一个配置文件

@Configuration
public class IndexPageConfiguration {

    @Bean
    public InternalResourceViewResolver viewResolver(){

        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/app/");
        resolver.setSuffix(".html");
        return resolver;

    }

}

重新控制器

@RestController
public class IndexController {

    @RequestMapping("/")
    public String index(){
        System.out.println("Looking in the index controller.........");
        return "index";
    }

}

主要类别:

@SpringBootApplication(scanBasePackages = { "com.serviceImpl","com.service","com.config" },exclude = { ErrorMvcAutoConfiguration.class })
public class SpringCrudApplication {

    public static void main(String[] args) {

        SpringApplication.run(SpringCrudApplication.class, args);
    }
}

上面的主类仍然返回默认的404错误页面。

共有2个答案

乐正翰
2023-03-14

您需要配置InternalRosourceViewResolver,让spring知道您的jsp位置

@Bean
    public InternalResourceViewResolver viewResolver() {
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/app/");
        resolver.setSuffix(".html");
        return resolver;

    }

所以Spring会在返回的视图中追加位置和后缀。

我认为最好将视图单独保存在任何其他文件夹中,并根据它配置文件夹位置。

如果要继续当前设置

您应该从控制器返回"/app/index.html"

当发生服务器端错误/异常时,Spring Boot提供了白标错误页面来隐藏您的堆栈跟踪,这将有助于我们保护代码免受入侵者的攻击。如果您想摆脱白标错误。

在您的@SpringBootApplication中指定排除错误MvcAutoConfiguration.class

@SpringBootApplication(scanBasePackages = { "com.ekart.app" }, exclude = { ErrorMvcAutoConfiguration.class })

如果未使用@SpringBootApplication annotatio,则应在@EnableAutoConfiguration注释中提供相同的排除项

帅德惠
2023-03-14

另一方面,如果您将index.html页面直接放在webapp文件夹下,Spring将自动查找该页面。因此您不需要任何配置。

这只是另一种方式。

 类似资料:
  • 我正在按照本指南将MySql添加到一个已经存在的SpringBoot项目中,该项目的依赖关系管理是在Graddle上。就在我添加教程中使用的这三个类时,如下所示 main/java/net/code/model/users.java 我的类使用@SpringBoot main/java/net/code/app.java 但每当我运行该应用程序时,我总是收到下面的消息 我搜索了一些相关问题,比如S

  • 我刚刚在Intellij中设置了Scala(以及SDK和JDK) 文件- 创建了一个项目。 项目名称src下-- 我做错了什么。请帮忙

  • 我有一个集群,我可以成功启动,至少这是出现在web UI上,我在其中看到这些信息 我收到这个消息 使用REST应用程序提交协议运行Spark。使用Spark默认的log4j配置文件:org/apache/spark/log4j-defaults.properties 16/08/31 16:59:06 INFO restsubmissionclient:提交请求以在Spark://name25:6

  • 初始化引导层java.lang.Module.FindException时出错:在使用eclipse创建一个新的springboot应用程序并运行它时找不到模块jdk.management.agent。

  • 当我调用服务时,它会给出以下错误:- 我已经基于相同的设计模式构建了REST API,它对我来说工作得很好。我没有得到的东西,为什么它说“没有财产日期找到类型现金流!”?实体中没有日期属性。我尝试删除数据库并重新启动,但没有成功。我错过了什么?

  • 这是一个启动应用程序。它运行完美,但没有得到输出(它显示我的HTTP状态404错误在浏览器) 波姆。xml 启动类Main方法 控制器在主类后加载 网址:http://localhost:8080/hello输出