2016-10-15 19:13

@jinyuanyuanab 看 model 中是否有个 toModel()方法,还可以试试 new Record() 后往里面切set model 进去

2016-10-15 15:41

根据异常信息可以看到:com.dlb.dao.WebUser 这是一个独立的类型,并不是 Record,转换的时候当然就出问题

很显然,是程序在某个地方向使用了相同的 key,向 session 中放入了 WebUser 对象,而不是 Record 对象,搜索一下代码中的 "userInfo" 这个 key 值就会发现,除了利用这个 key 向 session 中放入过 Record,还放入过 WebUser

2016-10-15 15:38

@yaoqingqing Cron4jPlugin 有一个无参构造方法,利用 cp = new CronPlugin() 创对象以后,再手动 cp.addTask(...) 逐步进行配置即可,而 cp.addTask(...) 所传入的参数来源可以是任何方式,包括数据库

2016-10-14 23:08

不能使用反射的具体代码是什么样的? 可以在这个贴子里面补充一下,一直是可以用反射的

2016-10-14 17:19

@sphsyv 为了一个 devMode 下可以用一行代码解决的问题去依赖于一个 apache jar 包不值得

2016-10-14 14:28

SimpleDateFormat 是非线程安全的,所以在多线程并发时会出错误,并发量大到一定程度可以测出来,这里并不重要,这个只会在开发模式 devMode 下会使用,生产环境不走这里

2016-10-14 14:26

先调用 getFile(...) 或 getFiles(...) 系列方法,然后再调用 getModel、getBean、getPara 这类方法,具体原因在 jfinal 手册上有红色字体明确说明

2016-10-14 13:08

jfinal 的 generator 模块,所有类都是面象扩展设计的,所以,你可以通过自定义一个 public class MyBaseModelGenberator extends BaseModelGenerator 覆盖掉父类中的 genClassDefine(...) 方法,可以随心所欲地将 Model 切换成你自己的中间 XxxModel

这个中间 XxxModel 中继承自 Model,里面可以写一些通用的方法,这样你的所有的 models 就拥有了这些扩展方法

此外,除了 BaseModelGenerator 外,其它的类都可以通过这种方式实现千变万化的需求

2016-10-13 15:13

@胖之 弄一个全局拦截器,将当前已经登录的用户,直接放进去,在拦截器通过这行代码即可:
inv.getController().setAttr(LoginService.loginAccountCacheName, loginAccount);
前面的 LoginService.loginAccountCacheName 仅仅是一个字符串而已,可以根据自己的喜好来起个名,后面的 loginAccount 是登录后的用户对象

2016-10-13 15:11

非 web 模式下,通过 arp.setShowSql(true) 可以开启 ActiveRecordPlugin 插件的 sql 输出

2016-10-13 15:10

jfinal 手册里面有具体的用法,在首页下载一个 jfinal 手册看看

2016-10-13 15:09

@海风的爸爸 用第一种方法即可,UrlSkipHandler 源代码一直在的,仔细找找 http://git.oschina.net/jfinal/jfinal

2016-10-13 12:04

context path 是个极其鸡肋的设计,很多人因此犯错,模板中的路径因此而被搞糊涂,只有彻底弃用 context path 才能避免这类问题

2016-10-13 12:03

@lidongxing2016 此外,你的 content path 没有设置为 "",所以掉进了这个坑,前面告知过要看这篇博文: https://my.oschina.net/jfinal/blog/353062