我有一个没有任何MVC但是普通的旧JSP和一些内联类的网站。 (像index.jsp一样调用页面) 出于测试目的,我可以在单个jsp文件上创建freemarker。比如配置,在同一页面中创建数据模型和template.process。
我的问题是我不知道如何为整个网站实施freemarker。 喜欢配置一次吗? 在每个jsp中获取相同的配置实例?所以我可以获得模板和流程
另外,我听说< @include_page path =" path / to / some.jsp" />仅适用于FreemarkerServlet。我想知道我是否可以在我的案例中使用此功能。
我做了google,并且每个结果都与servlet和mvc相关。 希望有人能给我一些想法。 Ť
非常感谢。
答案 0 :(得分:0)
每个目的应该只有一个Configuration
个实例(比如网页呈现是一个目的,电子邮件呈现是另一个目的);这对性能至关重要。如果从JSP页面调用FreeMarker(如果我理解的那样),可以将初始化的Configuration
对象放入应用程序作用域属性(a.k.a。SerlvetContext
属性)。
@include_page
是FreemarkerServlet
提供的自定义指令。但是,它只是一个自定义指令,您可以通过实现TemplateDirectiveModel
来编写另一个指令。棘手的部分是将与servlet相关的对象(如当前请求)传递给它。通常,您应该将自定义属性放入freemarker.core.Environment
对象(请参阅其API),然后由于TemplateDirectiveModel
收到Environment
作为参数,它可以读出该自定义属性从它。