java - 从Java模板直接访问DAO

标签 java templates jsp freemarker

是否可以通过 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/

相关文章:

c++ - 在这种情况下,基类到底是什么?

java - 在 Java servlet 中显式管理 session 以保护 Web 应用程序

java - 构建Apache Hive-无法解决依赖关系

templates - org.codehaus.groovy.grails.web.pages.exceptions.GroovyPagesException : Error processing GroovyPageView: Template not found

从集合中删除项目时出现 java.util.ConcurrentModificationException

c++ - 二维点数据集中的 OpenCV 模板

java - EL 表达式不会在 Tomcat 5.5 中执行,但在 tomcat 6.0.20 中工作

java - 在谷歌地图上动态添加标记簇

java - 在这些情况下是否可以运行程序(java\c\etc)?

java - 从android到PC的TCP无法使用java工作