这是我的控制器:
@RestController
public class GraphController {
@GetMapping("/displayBarGraph")
public String barGraph(Model model) {
Map<String, Integer> surveyMap = new LinkedHashMap<>();
surveyMap.put("Java", 40);
surveyMap.put("Dev oops", 25);
surveyMap.put("Python", 20);
surveyMap.put(".Net", 15);
model.addAttribute("surveyMap", surveyMap);
return "barGraph";
}
@GetMapping("/displayPieChart")
public String pieChart(Model model) {
model.addAttribute("pass", 50);
model.addAttribute("fail", 50);
return "pieChart";
}
这是我的 file.proprieties
:
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.enabled=false
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.html
这些是我的html文件:
但它总是这样引导我:
有什么解决办法吗?
3条答案
按热度按时间holgip5t1#
背景
spring.thymeleaf.enabled
到false
为spring mvc/web禁用thymeleaf。因此,控制器只返回thymeleaf模板的名称,而不是遍历thymeleaf视图分辨率。要解决此问题,请卸下
spring.thymeleaf.enabled
属性或将其设置为true
这是thymeleaf自动配置的默认设置:使用
@Controller
而不是@RestController
使用模板引擎时,您不希望返回值绑定到响应主体:配置的模板路径需要与存储模板的实际路径匹配。所以要么改变集合
spring.thymeleaf.prefix=classpath:/template/
或者重命名template
目录到templates
.删除这两个属性
spring.mvc.view.prefix
及spring.mvc.view.suffix
从您的配置。如果您想使用jsp,这是必要的。vojdkbi02#
重命名您的
src/main/resources/template
文件夹到src/main/resources/templates
文件夹名称中缺少“s”。wlzqhblo3#
为使这项工作正常进行了几项更改。
将@restcontroller更改为@controller,使其返回页面而不是正文中的响应。
将文件夹重命名为templates或更改视图解析器的属性文件中的路径。
不需要启用thymeleaf的属性。