gpt4 book ai didi

java - 解析模板时出错 [/],模板可能不存在,或者任何已配置的模板解析器都无法访问该模板

转载 作者:行者123 更新时间:2023-12-01 17:53:37 26 4
gpt4 key购买 nike

我使用的是 spring boot 2.2.2,旧的 spring 和依赖项可以工作,但现在相同的代码不起作用

package com.project.productapp.controller;

import com.project.productapp.service.ProductService;
import com.project.productapp.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;

@Controller
public class ProductController {

@Autowired
ProductService productService;

@Autowired
private UserRepository repository;

@GetMapping(path = "/products")
public String getProducts(Model model){
model.addAttribute("products", repository.findAll());
return "product";
}

@GetMapping(path = "/logout")
public String logout(HttpServletRequest request) throws ServletException {
request.logout();
return "/";
}
}

getProducts 或注销都不起作用。如果我设置断点,它就会被击中。我使用浏览器请求它,转到 http://localhost:8081/logout

错误:

Thu Mar 19 11:58:45 CET 2020 There was an unexpected error (type=Internal Server Error, status=500). Error resolving template [/], template might not exist or might not be accessible by any of the configured Template Resolvers org.thymeleaf.exceptions.TemplateInputException: Error resolving template [/], template might not exist or might not be accessible by any of the configured Template Resolvers at org.thymeleaf.engine.TemplateManager.resolveTemplate(TemplateManager.java:869) at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:607) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) at org.thymeleaf.spring5.view.ThymeleafView.renderFragment(ThymeleafView.java:362) at org.thymeleaf.spring5.view.ThymeleafView.render(ThymeleafView.java:189) at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1373) at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1118) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1057) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898) at javax.servlet.http.HttpServlet.service(HttpServlet.java:634) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883) at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)

product.ftl 位置正确(在注销功能中甚至不需要它)

http://localhost:8081/logout

最佳答案

好吧,我明白了。

我正在尝试显示product.ftl,并且基于此网站默认不再支持扩展 http://zetcode.com/springboot/freemarker/ .它前一段时间对我有用,因为我使用旧的 Spring boot 版本。在较新的版本中,现在默认使用 .ftlh 扩展名。

修复方法是在 application.properties 中设置 freemarker 后缀,如下所示:

spring.freemarker.suffix=.ftl

如果您在识别此设置时遇到问题,在 pom.xml 中,以下依赖项就足够了

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

我使用的 spring-boot-starter-thymeleaf 依赖项给我带来了一些问题,因此如有必要,请删除它。

关于java - 解析模板时出错 [/],模板可能不存在,或者任何已配置的模板解析器都无法访问该模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60755910/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com