java - Thymeleaf 呈现空白页面

标签 java thymeleaf

我使用 Thymeleaf 作为 Java Web 应用程序的模板引擎,但在渲染模板时遇到问题。请求似乎已正确处理,但浏览器中的页面为空白。

Thymeleaf 引擎配置

public static class TemplateEngineProvider implements Provider<TemplateEngine> {
    private static final Logger logger = LoggerFactory.getLogger(TemplateEngineProvider.class);

    private TemplateEngine templateEngine;
    TemplateEngineProvider() {
        logger.debug("Initializing template Engine");

        TemplateResolver templateResolver = new ServletContextTemplateResolver();

        templateResolver.setTemplateMode("HTML5");
        templateResolver.setPrefix("/WEB-INF/templates/");
        templateResolver.setSuffix(".html");

        this.templateEngine = new TemplateEngine();
        this.templateEngine.setTemplateResolver(templateResolver);
    }

    @Override
    public TemplateEngine get() {
        return this.templateEngine;
    }
}

servlet 代码

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

    logger.trace("Loading dashboard");

    DBI dbi = dbiProvider.get();
    PostDAO postDAO = dbi.onDemand(PostDAO.class);
    long postCount = postDAO.getPostCount();

    resp.setContentType("text/html");

    logger.trace("Calling template engine");
    WebContext ctx = new WebContext(req, resp, getServletContext());
    ctx.setLocale(req.getLocale());
    this.templateEngine.process(TEMPLATE_NAME, ctx);
    logger.trace("Done processing request");

}

模板。在尝试显示基本 HTML 模板时,Thymeleaf 功能已被注释掉。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:th="http://www.thymeleaf.org">
<head>
<title>dashboard</title>
<!--<title>th:text="${page.title}</title>-->
</head>
<body>
Admin dashboard
<!--<div th:substituteby="header::header"></div>
<p th:text="#{dashboard.post.total_count(${post_count})}"></p>
<div th:substituteby="footer::footer"></div>-->

</body>
</html>

最佳答案

正在使用的处理函数返回一个带有已解析模板数据的字符串。

public final String process(String templateName, IContext context)

调用应该包含响应编写器,以便将解析的模板直接写入编写器

public final void process(String templateName, IContext context, Writer writer)

应该花更多时间研究 Javadocs。

关于java - Thymeleaf 呈现空白页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14088220/

相关文章:

java - @JoinColumn 注解中名称和引用列名的区别?

java - 通过 ssh 在远程计算机上作为后台进程运行 jar

java - 结构值存储

java - Thymeleaf、Javascript 内联和迭代

java - 在 cocos2d android 中刷新 Sprite

java - FOP,在 pdf 生成上获得稳定的性能

gradle - Thymeleaf在gradle构建中失败

templates - 如果来自片段,如何向 thymeleaf head 标签添加其他内容?

javascript - 动态验证 HTML

java.lang.NullPointerException : null when using Spring Boot