2019-07-17 14:08

final Class webappTemplateLoaderClass = ClassUtil.forName("freemarker.cache.WebappTemplateLoader");

// Don't introduce linking-time dependency on servlets
final Class servletContextClass = ClassUtil.forName("javax.servlet.ServletContext");
final Class[] constructorParamTypes = new Class[] { servletContextClass, String.class };
final Object[] constructorParams = new Object[] { JFinal.me().getServletContext(), StringUtils.trim(PropKit.get("template.loader_path"))};
TemplateLoader templateLoader1 = (TemplateLoader)webappTemplateLoaderClass.getConstructor(constructorParamTypes).newInstance(constructorParams);
final Object[] constructorParams1 = new Object[] { JFinal.me().getServletContext(), "/templates"};
TemplateLoader templateLoader2 = (TemplateLoader)webappTemplateLoaderClass.getConstructor(constructorParamTypes).newInstance(constructorParams1);
MultiTemplateLoader mtl = new MultiTemplateLoader(new TemplateLoader[] {templateLoader1,templateLoader2 });
cfg.setTemplateLoader(mtl);

这样就可以了。

2019-06-20 22:56

我在spring boot下可以,在JFINAL下不可以

2019-06-20 16:40

@JFinal 在onStart下加上后还是无生效