Spring mvc Freemarker配置程序中的Freemarker WebappTemplateLoader
有人举过如何在Freemarker配置器中使用Freemarker WebappTemplateLoader的例子吗 我正在将Freemarker与Spring MVC结合使用,并扩展Freemarker配置器以添加各种模板加载器,我还想添加一个web应用加载器以在web应用上下文中加载模板。但我不知道如何为其构造函数获取servletcontext参数Spring mvc Freemarker配置程序中的Freemarker WebappTemplateLoader,spring-mvc,freemarker,Spring Mvc,Freemarker,有人举过如何在Freemarker配置器中使用Freemarker WebappTemplateLoader的例子吗 我正在将Freemarker与Spring MVC结合使用,并扩展Freemarker配置器以添加各种模板加载器,我还想添加一个web应用加载器以在web应用上下文中加载模板。但我不知道如何为其构造函数获取servletcontext参数 public class DesktopFreeMarkerConfigurer extends FreeMarkerConfigurer{
public class DesktopFreeMarkerConfigurer extends FreeMarkerConfigurer{
@Override
protected void postProcessConfiguration(Configuration config){
[...]
/* Get templates from the webapp/servlet context */
WebappTemplateLoader watl = new WebappTemplateLoader(<servletContext>, "default/ftl/");
[...]
}
}
公共类DesktopFreeMarkerconfiguer扩展了FreeMarkerconfiguer{
@凌驾
受保护的void后处理配置(配置){
[...]
/*从webapp/servlet上下文获取模板*/
WebappTemplateLoader watl=新的WebappTemplateLoader(,“default/ftl/”);
[...]
}
}
我想将webapp/default/ftl添加到模板加载路径,但由于它可能是动态的/可配置的,我无法在xml文件中硬编码它
如有任何建议,将不胜感激
多谢各位
Carmen我假设您将DesktopFreeMarkerConfigure定义为Springbean。 在这种情况下,获取servlet上下文应该很简单。 只需在DeskTopFreeMarkerConfigure类中定义:
@Autowired private ServletContext context;
或者,如果您选择,也可以使其实现ServletContextAware:
public class DesktopFreeMarkerConfigurer extends FreeMarkerConfigurer implements ServletContextAware {
private ServletContext servletContext;
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
@Override
protected void postProcessConfiguration(Configuration config){
WebappTemplateLoader watl = new WebappTemplateLoader(this.servletContext, "default/ftl/");
...
}
...
}