2016-12-25 99 views
0

我想要按照本教程http://www.thymeleaf.org/doc/articles/springmvcaccessdata.html了解如何发送对Thymeleaf模板的响应。但我得到这个错误:无法找到模板位置:classpath:/模板/(请添加一些模板或检查您的Thymeleaf配置)如何从弹簧启动中找到Thymeleaf模板

我把message.html文件放在其他源目录和src/main/resources下<default package>

所以结构如下:

SomeProject - 其他来源 --src /主/资源 --- <default package> ---- message.html

我想知道为什么会出现根据<default package>而不是<template>?这可能是问题吗?如果是这样,我该如何改变它?我正在使用netbeans和maven。请有任何想法吗?这是我的依赖在我的pom.xml:

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-devtools</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
    </dependency>    
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-data-jpa</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>com.h2database</groupId> 
     <artifactId>h2</artifactId> 
    </dependency> 

在控制器我有

@RequestMapping(value = "message", method = RequestMethod.GET) 
    public String messages(Model model) { 
    model.addAttribute("messages", messageRepository.findAll()); 
    return "message"; 
} 

并在视图:

<ul th:each="message : ${messages}"> 
    <li th:text="${message.id}">1</li> 
    <li><a href="#" th:text="${message.title}">Title ...</a></li> 
    <li th:text="${message.text}">Text ...</li> 
</ul> 

回答

0

2这边的事情: 1。如果您正在使用Maven,并且我假设没有对文件夹名称进行自定义。然后文件夹名称应该是src而不是source。 2.文件夹重命名后,将您的模板移动到src/resources中的“模板”文件夹中,这应该可以正常运行。

+0

@HhuShu Bhardwaj我在这个问题上犯了一个错字。在NetBeans中,文件夹结构显示如下src/main/resources,它位于NetBeans项目层次结构中其他资源目录下。我会解决问题中的错字。谢谢你的帮助。现在,也许你可以进一步反馈? – Gustav

+0

我已经给了2分。您的模板是否位于src/main/resources下的模板目录中? –

+0

@ Himanshu我在src/main/resources下创建了模板目录,并将html文件放在那里,现在问题已解决。感谢您的支持。我会将问题标记为已回答。 – Gustav

2

Spring Boot包含对thymeleaf模板引擎的自动配置支持,您的模板将从src/main/resources/templates自动获取。

如果您正在自定义模板位置,请使用Spring Boot下面的thymeleaf属性配置。

  • spring.thymeleaf.check-template = true#在呈现模板之前检查模板是否存在。

  • spring.thymeleaf.check-template-location = true#检查模板位置是否存在。

  • spring.thymeleaf.enabled = true#启用MVC Thymeleaf视图分辨率。

  • spring.thymeleaf.prefix = classpath:/ templates /#构建URL时预先查看名称的前缀。

  • spring.thymeleaf.suffix = .html#在构建URL时被附加到视图名称的后缀。

+0

从哪里我应该找到这个配置文件?我正在使用maven,当我尝试从依赖列表中更改一些时,它不允许我在那里更改任何内容。有些代码甚至被隐藏起来。我应该手动下载我想要更改配置的依赖关系吗? – Gustav

+0

在你的类路径中添加一个application.properties文件并放置所有的属性。 SRC /主/资源/ application.properties – Chandu

0

的默认目录位置thymeleaf模板是:

src/main/resources/templates 

其他路径是春天引导标准约定。

Spring Boot thymeleaf directory structure