我一直在熟悉FreeMarker,它是Java的模板引擎.
我到了能够通过哈希映射将对象传递给模板引擎的地步.这没关系.但是一旦我尝试将任何类型的多个对象集合传递给FreeMarker,它就会给我一个freemarker.template.TemplateException并抱怨它"预期的集合或序列.作业被评估为freemarker.template.SimpleHash".
根据我在各种资源中阅读的理解,这是可以预料的.
现在,我做了大量的腿部工作,发现很多人评论如何解决这个问题.但是,坦率地说,(a)对于许多例子,我不清楚他们的建议在我的案例中是如何适用的 - 尽管我已经知道Java基础知识很长一段时间我对一些架构很新关于Java Web应用程序和(b)我对哪种方法是最好的方法感到困惑.
在最简化的层面上,我想要做的就是基本上:
我有一个简单的Servlet.
我有一个简单的类(对于这个名为Invoice的例子),它有一些方法和属性.
我想让我的servlet(以某种方式)通过FreeMarker的处理方法呈现这些对象(或这些对象的视图)的实例的列表/数组/序列/散列图.
我想让我的.ftl模板循环遍历list/array/sequence/hashmap并显示方法结果,如下所示:
< # list invoices as invoice>
Invoice note: ${invoice.getNote()}, Invoice Amount:${invoice.getAmount()}
< / # list>
Run Code Online (Sandbox Code Playgroud)
现在,我不一定在寻找快速而肮脏的解决方案.我是FreeMarker的新手,但我希望以优雅和优秀的设计正确的方式做到这一点.所以我愿意完全重新思考这种方法.有人可以帮助我看看我需要做些什么才能让这样的事情发挥作用?