2019-03-12 08:56

@JFinal 知道为什么我那种方式不行了, maven 项目的话, 编译非 java 文件的话, 需要在 pom.xml 中加入:


src/main/java

**/*.jf

false



感谢波哥, 麻烦波哥了;

2019-03-10 19:05

@JFinal 把"/" + PathKit.getWebRootPath() 这一部分去掉后, 还是会报找不到文件; 我试在在我的类里去修改 engine.SourceFactory 也可以执行:
public class ModelClazzGenerator extends ModelGenerator {

public ModelClazzGenerator(String modelPackageName, String baseModelPackageName, String modelOutputDir) {
super(modelPackageName, baseModelPackageName, modelOutputDir);
FileSourceFactory fileSourceFactory = new FileSourceFactory();
this.engine.setSourceFactory(fileSourceFactory);
this.template = "/src/main/java/com/jlayui/codegen/model/model_template.jf";
}

}
请问是否还有别的做法?

移动模板文件到 resource 下是可以的, 想看看我那种模板文件路径是否有别的解决方案。

2019-03-10 18:03

@JFinal 按照波哥的建议, 我将模板文件移到 resource 下去的确可以;但有个疑问, 如果我是设成 this.template = "/src/main/java//com/jlayui/codegen/model/base_model_template.jf";这样的话, 就还是报文件没找到, 是否需要修改 engine 的 factory?

2019-03-10 17:31

public ClassPathSource(String baseTemplatePath, String fileName, String encoding) {
this.finalFileName = this.buildFinalFileName(baseTemplatePath, fileName);
this.fileName = fileName;
this.encoding = encoding;
this.classLoader = this.getClassLoader();
this.url = this.classLoader.getResource(this.finalFileName);
if (this.url == null) {
throw new IllegalArgumentException("File not found : \"" + this.finalFileName + "\"");
} else {
this.processIsInJarAndlastModified();
}
}
跟了下源码, 为什么模板会从 classLoader 去找的?

2018-05-14 17:12

那是否有方法能让在xxx.js中可以使用模板?

2018-05-14 16:43

@JFinal 波总,还有个问题就是如果在页面上引入xxx.js的话,在js中用模板语言,好像不能被识别?

2018-05-14 16:38

还是说也可以通过类名.方法名来调用?

2018-05-14 16:37

就是如果启动的时候会先判断A和B中是否有相同方法名的方法吗?

2018-01-20 15:38

@caoxusheng 但是beforeJFinalStop这个也没执行呢

2018-01-20 12:34

@JFinal 那就是如何在开发环境下也是没办法的咯?