3.2支持从jar包中加载模版,但是只能指定一个路径,要么是jar包,要么是webapp下面,在波总的指导下我做了个简单的扩展,下面是主要的代码,其中的buildFinalFileName方法,copy FileSource类中的同名方法出来即可。
public class MixPathSource implements ISourceFactory{
@Override
public ISource getSource(String baseTemplatePath,String fileName,String encoding){
String filePath=PathKit.getWebRootPath()+(baseTemplatePath!=null?baseTemplatePath:"");
File file=new File(buildFinalFileName(filePath,fileName));
if(file.exists()){
return new FileSource(filePath,fileName,encoding);
}else{
return new ClassPathSource(baseTemplatePath,fileName,encoding);
}
}
}configEngine里面设置一下来源
engine.setSourceFactory(new MixPathSource());
这样不管在jar包中的文件还是webapp里面的都能扫描到了,可见JFinal的设计相当灵活。