Java 弹簧罐';找不到我的html页面

Java 弹簧罐';找不到我的html页面,java,html,spring,spring-boot,Java,Html,Spring,Spring Boot,我是春天的新手。我正在尝试做一些简单的事情,只是让spring阅读我的一个html页面。我知道这是非常基本的,但我已经尝试了许多教程,无法使其工作 下图是我的项目文件夹 这是我的控制器 package com.springbootrecipes.controllers; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.stereotype.Con

我是春天的新手。我正在尝试做一些简单的事情,只是让spring阅读我的一个html页面。我知道这是非常基本的,但我已经尝试了许多教程,无法使其工作

下图是我的项目文件夹

这是我的控制器

package com.springbootrecipes.controllers;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@EnableAutoConfiguration
@Controller
public class RecipeController {

    @RequestMapping("/ola")
    public String olaa() {
        return "index";
    }

    @RequestMapping("/")
    public String ola() {
        return "/index";
    }

    @RequestMapping("/ei")
    @ResponseBody
    public String ei() {
        return "Um ola pra quem ta chegando";
    }

}
这是我的主要课程

package com.springbootrecipes.springbootrecipes;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;


@SpringBootApplication
@ComponentScan(basePackages={"com.springbootrecipes.controllers"})
public class SpringbootRecipesApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootRecipesApplication.class, args);
    }
}
我还添加了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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.springboot-recipes</groupId>
    <artifactId>springboot-recipes</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot-recipes</name>
    <description>Demo project for Spring Boot</description>


    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.M1</version>
    </parent>

    <pluginRepositories>
        <pluginRepository>
            <id>repository.spring.release</id>
            <name>Spring GA Repository</name>
            <url>https://repo.spring.io/plugins-release/</url>
        </pluginRepository>
    </pluginRepositories>

    <repositories>
        <repository>
            <id>repository.spring.milestone</id>
            <name>Spring Milestone Repository</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.thymeleaf/thymeleaf -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>2.1.3.RELEASE</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

</project>

这里需要视图解析器

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Bean
    @Description("Thymeleaf template resolver serving HTML 5")
    public ClassLoaderTemplateResolver templateResolver() {

        ClassLoaderTemplateResolver templateResolver = new ClassLoaderTemplateResolver();

        templateResolver.setPrefix("templates/");
        templateResolver.setCacheable(false);
        templateResolver.setSuffix(".html");        
        templateResolver.setTemplateMode("HTML5");
        templateResolver.setCharacterEncoding("UTF-8");

        return templateResolver;
    }

    @Bean
    @Description("Thymeleaf template engine with Spring integration")
    public SpringTemplateEngine templateEngine() {

        SpringTemplateEngine templateEngine = new SpringTemplateEngine();
        templateEngine.setTemplateResolver(templateResolver());

        return templateEngine;
    }

    @Bean
    @Description("Thymeleaf view resolver")
    public ViewResolver viewResolver() {

        ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();

        viewResolver.setTemplateEngine(templateEngine());
        viewResolver.setCharacterEncoding("UTF-8");

        return viewResolver;
    }    

    @Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("index");
    }
}
或者,如果您想让spring boot自动处理它,那么请使用thymeleaf stater

 <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
</dependencies>

org.springframework.boot
弹簧启动装置
而不是

 <dependency>
        <groupId>org.thymeleaf</groupId>
        <artifactId>thymeleaf</artifactId>
        <version>2.1.3.RELEASE</version>
    </dependency>

org.thymeleaf
百里香
2.1.3.1发布

thymeleaf stater将处理视图解析器您不需要定义viewresolver bean

您必须更改
pom.xml中的
thymeleaf
依赖项 您应该使用
spring boot
thymeleaf
自动配置提供的依赖项

插入:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

org.springframework.boot
弹簧启动装置
而不是:

<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.1.3.RELEASE</version>
</dependency>

org.thymeleaf
百里香
2.1.3.1发布

您是否尝试将
index.html
保存在静态文件夹中。此外,您需要指定完整路径才能访问页面,即
/index.html
应用程序中有什么。属性?如果转到
http://localhost:8080
?我收到一个404错误-->出现了一个意外错误(类型=未找到,状态=404)。没有可用的消息@ansh ok,如果我将html文件放在静态文件夹中,并将路径设置为/index.html,它就会工作。但为什么我不能在templates文件夹中使用它?user6690200,application.properties为空
<dependency>
    <groupId>org.thymeleaf</groupId>
    <artifactId>thymeleaf</artifactId>
    <version>2.1.3.RELEASE</version>
</dependency>