0

我尝试在 JSP 中使用 FreemarkerTag。我有点想知道,因为发行版缺少 TLD 文件,但我自己创建了一个:

<?xml version="1.0" encoding="UTF-8"?>
<taglib>
    <tlibversion>1.0</tlibversion>
    <jspversion>1.1</jspversion>
    <shortname>fmtag</shortname>
    <info>Taglib for freemarker in JSP</info>
    <uri>http://adesso.ch/jsp/fmtag</uri>
  <tag>
    <name>template</name>
    <tagclass>freemarker.ext.jsp.FreemarkerTag</tagclass>
    <bodycontent>tagdependent</bodycontent>
    <info>Allows evaluation of FreeMarker templates inside JSP</info>
    <attribute>
      <name>caching</name>
      <required>false</required>
    </attribute>
  </tag>
</taglib>

我可以使用 FreemarkerTag 来做一些基本的事情(比如字符串连接 + 循环)。例如,我不能使用它来使用这样的 include 指令:

<fm:template>
  <#include "dummy_product_box_page_67623.ftl">
</fm:template>

在这种情况下,将找不到要包含的模板。我不知道如何更详细地配置我的主模板。特别是对于 include 指令,我找不到配置 TemplatePath 的方法。我发现了很多示例如何通过配置对象上的 setDirectoryForTemplateLoading() 以编程方式执行此操作,但在我的场景中我没有编程访问权限。

任何提示和想法将不胜感激。谢谢。

4

1 回答 1

1

它使用Configuration.getDefaultConfiguration(), 所以这是您必须在早期阶段配置的配置实例,最好是在任何 HTTP 请求处理线程启动之前。但是请注意,这Configuration.getDefaultConfiguration()已被弃用,因为如果某些其他组件(您甚至不知道的组件)也为自己设置了该单例,那该怎么办。但这就是现在那个可怜的废弃标签的情况......(我想它应该Configuration从 Servlet 请求范围中获取作为属性,并且从应用程序上下文中获取失败。)。

于 2013-09-13T14:56:40.210 回答