FreeMarker模板路径由
TemplateLoader对象解析,您应该在
Configuration对象中指定该路径。您指定为模板路径的路径由解释
TemplateLoader,并且通常是相对于某种基本目录(即使它以开头
/),因此也称为模板根目录。在您的示例中,您没有指定任何
TemplateLoader,因此您使用的是default
TemplateLoader,它仅用于向后兼容,几乎没有用处(并且很危险)。因此,请执行以下操作:
config.setDirectoryForTemplateLoading(new File( "C:/Users/Jay/workspace/WebService/templates"));
然后:
config.getTemplate("fibplain.xml");请注意,
/template前缀现在不存在,因为模板路径是相对于的
C:/Users/Jay/workspace/WebService/templates。(这也意味着模板不能使用
../-s
退出模板,这对于安全性很重要。)
除了从真实目录中加载外,还可以从中
SerlvetContext,从“类路径”等中加载模板。这完全取决于
TemplateLoader您选择的内容。
另请参阅:http :
//freemarker.org/docs/pgui_config_templateloading.html
更新:如果
FileNotFoundException不是
TemplateNotFoundException,则该将FreeMarker至少升级到2.3.22的时候了。它还提供了更好的错误消息,例如,如果您犯了使用default的典型错误
TemplateLoader,它将在错误消息中告诉您正确的信息。减少浪费的开发时间。



