3

我有以下方法可以在模板上呈现用户列表,但是在 IntelliJ 中启动 Spark 时出现 500 内部错误。

private void renderTemplate() throws IOException, TemplateException {
        List<String> users = new ArrayList<>();
        users.add("John Doe");
        users.add("Tony Doe");

        get("/admin", (request, response) -> {
           return new ModelAndView(users, "spark/template/freemarker/admin_template.ftl");
        }, new FreeMarkerEngine());
    }

我的 admin_template.ftl 的内容是:

<html>
<head>
    <title>Administration</title>
</head>
<body>


<h1>My Admin</h1>

<#list users as user>
    <h2>$user</h2>
</#list>
</body>
</html>

有谁知道如何在 freemarker 模板上呈现列表?感谢您的回复!

4

1 回答 1

2

呈现列表更改

<#list users as user>
    <h2>$user</h2>
</#list>

<#list users as user>
    <h2>${user}</h2>
</#list>

inadmin_template.ftl并更改renderTemplate为如下所示:

private void renderTemplate() throws IOException, TemplateException {
        List<String> users = new ArrayList<>();
        users.add("John Doe");
        users.add("Tony Doe");

        Map<String, Object> attributes = new HashMap<>();
        attributes.put("users", users);    

        get("/admin", (request, response) -> {
           return new ModelAndView(attributes, "spark/template/freemarker/admin_template.ftl");
        }, new FreeMarkerEngine());
    }

如果这不能解决问题,则可能是一个单独的问题FreeMarkerEngine导致错误消息“500 内部错误”,即您的FreeMarkerEngine对象在运行时无法找到模板文件admin_template.ftl。有关如何处理的详细信息,请参阅在 java 中加载 freemarker 模板时对 FileNotFoundException 的答案。

于 2014-09-09T21:27:27.830 回答