jfinal自带模版引擎配置问题

模版文件找不到:

09/20 01:59:59.621 ERROR[qtp703504298-17][]c.j.c.ActionHandler - /login com.jfinal.render.RenderException: java.lang.IllegalArgumentException: File not found : "view/login.html"

at com.jfinal.render.TemplateRender.render(TemplateRender.java:63)

at com.jfinal.core.ActionHandler.handle(ActionHandler.java:99)

at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:73)


我的配置是:

configEngine(Engine me) {
    me.setBaseTemplatePath();
    me.setSourceFactory(ClassPathSourceFactory());
}


blob.png

请问File not found能打印出绝对路径吗?现在一头雾水,不知道在哪个路径下才能找到模版文件:)







评论区

Dreamlu

2017-09-20 13:52

哈哈哈哈,你仔细看下你的路径对么!

JFinal

2017-09-20 14:12

me.setSourceFactory(ClassPathSourceFactory()); 这行配置是从 class path 以及 jar 包里面加载模板文件,而你的模板文件在 webapp 的某个子目录下面,那么就不要配置 setSourceFactory,而使用默认配置

如果你的模板文件是放在标准 maven 项目的 src/reoureses 下面的,则可以使用 ClassPathSourceFactory,因为该目录下面的文件会被编译器放在 class path 下面去

通常情况下使用 ClassPathSourceFactory 不需要配置 setBaseTemplatePath(...),则是默认从 class path 根去找模板文件

JFinal

2017-09-20 14:14

再补充一下,配置了 me.setSourceFactory(ClassPathSourceFactory()) 以后,引擎是从 classpath 下面去找模板,由于使用的是 Resource 类加载的资源,也就没再显示绝对路径,这种情况下,你只需要以 class path 为根去定位就好

如果没有使用 ClassPathSourceFactory,那么在找不到模板文件时,引擎会提示全路径及文件名

热门反馈

扫码入社