是否可以通过 Java 模板直接访问 DAO?我想实现类似的目标
<#foreach value="eventsDao.getEvents()" as="event">
<= value="event.getName()" />
</#foreach>
我觉得将所有内容写入 Controller ,然后写入模板是不必要的,并且限制了口是心非。
此外,JSP、Freemarker 和 Apache Tiles 之间的显着区别是什么?他们允许这样做吗?
最佳答案
如果你真的想做到这一点,打破模型 View 分离......有一些方法。在 JSP 中,您有 <%! ... %>
和<% ... %>
您可以在其中输入 Java 代码的 block 。在 FreeMarker 中,虽然无法插入 Java block ,但仍然可以调用对象和类的公共(public)方法。调用静态方法有点棘手,因为您不能仅在语言级别上按名称访问类,而是必须将某些内容放入可以执行此操作的模板的上下文(所谓的数据模型)中(请参阅: http://freemarker.org/docs/pgui_misc_beanwrapper.html#autoid_55“访问静态方法”)。我认为,瓷砖与这个问题无关。
关于java - 从Java模板直接访问DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9149397/