2018-09-06 20:32

@逗不逗 这些用法在文档中都有的,开发之前一定要先看看文档,jfinal 坚持极简设计,文档的内容本身就很少

2018-09-06 17:37

@Joe88 单步调试,看一下返回值的具体类型是什么?

注意要调试进入 record.getStr(...) 里面去

你也可以通过 Object ret = record.get(Sting) 得到 ret 变量,看 ret 是什么类型

2018-09-06 17:35

通过这行代码来获取:
getModel(Staff.class, "");

2018-09-06 17:33

用一个 static boolean isRuning 变量控制一下,当这个变量为 true 时,自己直接退出本次调度

2018-09-06 16:34

其实异常已经说得极其清楚了:
java.lang.ClassCastException: org.apache.catalina.util.ParameterMap cannot be cast to java.util.HashMap

2018-09-06 16:34

这个没有什么技巧的,把类型搞对就可以了,java 是强类型的,类型容不得乱来

jfinal 的 com.jfinal.core 包下面有类似的代码,大概在里头的 Injector 和 Converter 中

2018-09-06 16:29

代码有缺失在个人空间改一下这个贴子:
http://www.jfinal.com/my/feedback

改的时候注意看一下有一个 "代码语言" 的下拉框,选择 Java 语言再输入代码即可

2018-09-06 15:28

@Dull enjoy 中已经存在的 ClassPathSource 已经包含了你前面实现的 JarSource 功能,直接用就可以了,无需扩展

2018-09-06 15:24

@逗不逗 使用生成器来生成映射,自动化以后就不会出这类错误了,下载首页的 jfinal demo,其中有生成器的代码, copy 即用

2018-09-06 12:34

提问中其实没有提供任何有助于解决问题的信息

2018-09-06 12:34

解决问题,最基本的方法就是仔细读懂异常,没人知道你的异常信息是什么,也就没人猜到是什么了

2018-09-06 12:32

根据控制台输出的异常找到源因,并解决之

如果控制台没有输出异常,下载首页的 jfinal demo,拿到里面的 log4j.properties 文件用于自己的项目中

2018-09-06 12:31

@Dull 用户自己的代码,如果 A 依赖 B , B 依赖 C , 如果这时 C 依赖于 A,就形成了间接循环依赖,对这类情况的 json 转换必然会造成无限循环,默认转换 30 层对于大部分情况是够用的

看来默认转换深度得再调整得大一点

2018-09-06 12:02

enjoy 中的所有 getTemplate 方法,本质都是从 getTemplate(ISource source) 扩展出来的,你也可以扩展。

例如扩展出一个 DbSource 从数据库中读取模板,扩展出 NetSource 从网络上读取模板

2018-09-06 12:01

@Dull 何必那么麻烦,功能都在那呢,直接使用:
engine.getTemplate(new ClassPathSource(tplPath));

Engine 中的 getTemplate 重载了很多方便的方法,满足绝大部分需求,即便是不满足,也可以使用 getTemplate(ISource) 方法,这个方法中 ISource 可以让你扩展出从任意地方加载模板

enjoy 内部的 ClassPathSourceFactory、ClassPathSource 不仅仅是可以读取 jar 包内的模板,还同时可以读取 class path 下面的模板,所谓的 class path 下面的模板就是你的 JVM 启动时生效的 class path,通常是下面的这种路径:
WEB-INF/classes
target/classes
bin

总之这个 class path 是 JVM 启动时去找 class 文件的地方