无法在Spring启动时显示index.html页面

时间:2017-09-05 17:58:07

标签: java spring-boot thymeleaf

我尝试创建一个简单的spring boot应用程序

我创建了spring boot应用程序类,配置类,控制器类和index.html。

我添加了Thymeleaf依赖项并将html页面放在资源文件夹下(\ src \ main \ resources \ templates \ index.html)

但是当我运行应用程序时,它会出错

string.replace(/[^0-9]/g,'');

请给我一个解决方案。

{
    "compilerOptions": {
        "target": "ES6"
    },
    "exclude": [
        "node_modules",
        "**/node_modules/*"
    ]
}

控制器类

org.thymeleaf.exceptions.TemplateInputException:
Error resolving template "index.html", template might not exist or might not be accessible by any of the configured Template Resolvers

Thymeleaf的WebConfiguration

@SpringBootApplication
@ComponentScan(basePackages = {"com.mail"})
public class SpringBootWebApplication {

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

index.html页面

@RestController
public class IndexController {

    @RequestMapping(value="/", method = RequestMethod.GET)
    String index(){
        System.out.println("..............hit");
        return "index";
    }

5 个答案:

答案 0 :(得分:2)

尝试执行以下操作:

  1. 用@Controller替换@RestController;
  2. 我认为你不需要WebConfiguration;控制器返回“index”,表示“渲染index.html模板”。 Thymeleaf将在resources / templates文件夹中找到该模板。

答案 1 :(得分:0)

尝试用@Controller替换@RestController。我将从start.spring.io生成的模板开始。并逐步逐步添加功能。

或者

如果您只是进行一些谷歌搜索,您将很容易找到一些实际可行的样本百里香项目,从那里开始。

答案 2 :(得分:0)

默认情况下看起来无法访问静态资源。尝试提供对添加资源处理程序的静态资源的访问,例如:

@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("");
    }
}

答案 3 :(得分:0)

如前面的答案所述,@RestController应替换为@Controller

当我们使用 @RestController 时,return语句值将作为 String Response 发送。但是当我们使用 @Controller 时,return语句值将被视为要呈现的视图。

参考Diff. b/w @RestController and @Controller

此外,Spring Boot会自动在' \ src \ main \ resources \ templates \'中查找 index.html 。当我们使用像Thymeleaf这样的模板引擎时,这是Spring Boot中视图的默认位置。请参阅Spring Boot and Template Engines

因此,我们不需要显式定义 WebConfiguration 类,因为我们需要使用ViewRegistry定义在XML文件或Java类中配置的视图解析器。 Spring Boot消除了对XML和Java View Registry的需求。所以你也可以取消 WebConfiguration 类。

答案 4 :(得分:0)

读取点编号2 here 在你的pom中添加以下依赖项:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <optional>true</optional>
    </dependency>