Java 从Spark web Framework在Freemarker模板上呈现列表

Java 从Spark web Framework在Freemarker模板上呈现列表,java,web,frameworks,freemarker,spark-java,Java,Web,Frameworks,Freemarker,Spark Java,我使用以下方法在模板上呈现用户列表,但在IntelliJ中启动Spark时,我遇到了500个内部错误 private void renderTemplate() throws IOException, TemplateException { List<String> users = new ArrayList<>(); users.add("John Doe"); users.add("Tony Doe");

我使用以下方法在模板上呈现用户列表,但在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());
    }
private void renderTemplate()引发IOException、TemplateException{
列表用户=新建ArrayList();
用户。添加(“John Doe”);
用户。添加(“Tony Doe”);
获取(“/admin”,(请求、响应)->{
返回新的ModelAndView(用户,“spark/template/freemarker/admin_template.ftl”);
},新的FreeMarkerEngine());
}
我的管理模板.ftl的内容是:

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


<h1>My Admin</h1>

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

管理
我的管理员
$user

有人知道如何在freemarker模板上呈现列表吗?谢谢回复

以呈现列表更改

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

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

tonygw:@nwk的答案很好,并且可以捕捉错误。您可以包含一个error.ftl并调用它来显示任何错误消息。基本上尝试使用try/catch块。因此,当您收到错误时,请记录它。并显示错误页面。这样您就可以查看日志来查找错误
<#list users as user>
    <h2>${user}</h2>
</#list>
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());
    }