2016-12-18 20:19

没看明白这个 action 是干啥的,里面代码貌似是 validator 要干的事情, 为何不直接写在 Validator 中?

2016-12-18 20:18

补充一下,较高版本的 jfinal,对于 Model Record 的 jsp 支持已经有过增强,例如通过生成器生成 getter 方法,生成后的 Model 与传统 java bean 没有区别

2016-12-18 20:17

用一下 SessionInViewInterceptor 这个拦截器,对 session 进行了 map 化的包装。Model 与 Record 有自己的定义,她们不是 Map,所以绝对不可以继承 Map,继承的使用是需要极其小心的,尽可能不用,如果要用那么一定有充分的理由

2016-12-18 11:55

建议使用 jquery form 来实现文件上传,省很多事

2016-12-18 11:54

用多个 input type=file 表单域,并保障 name 属性值的唯一性即可,你现在的 name全是 taskImgs,那么上传的时候,后面的 file 会覆盖掉前面的 file

2016-12-17 17:29

严格来说,在totalPage 为 0 时,isLastPage 值没有意义,所以不算是 bug。即便如此 jfinal 2.3 也对此进行了改进,从用户体验上来说会好一点,感谢反馈,赞一个

2016-12-17 15:26

jfinal 提供了一个:OreillyCos.setFileRenamePolicy(...) 方法,只需要利用此方法定制一下重名时的策略即可

本站 jfinal.com 社区用的另一种方法,将文件先上传到一个 temp 文件夹,然后再利用业务层生成新的文件名,然后再将 temp 文件夹下面的文件 renameTo 一下成自己想要的文件目录以及文件名即可

对于严谨的项目来说,文件名都是有一套业务逻辑的,例如本社区,不同模块的上传文件保存在不同的子目录之下,文件名前缀使用的是用户 id 号 + 时间戳,这样重名的概率几乎为零,因为有目录 + userId + 时间戳这三个因素来保障

建议使用 jfinal 社区的方式来做

2016-12-17 11:24

@康康君 两种办法,一种是设置为开发模式: me.setDevMode(true),另一种是设置 freemarker 的缓存更新时间为 0 :me.setFreeMarkerTemplateUpdateDelay(...),这个值默认是 60 分钟

2016-12-16 12:38

设置一下最大安全层数即可,该参数是为了防止被转换数据自身有循环依赖

2016-12-15 10:32

@张露露 关键是这个问题,以前从来没人反馈过,不知道原因,这个是你碰到的?

2016-12-15 10:16

@Romeo jfinal 只是简单的开启 jdbc 的事务功能,并没有关注过乐观锁这些东东

2016-12-15 10:15

@张露露 这个需要单步调试精确定定位问题,很多不用 sql server,建议去群里问问

这个问题以前没人反馈过,试试换个 jdbc 驱动

2016-12-14 22:43

多个 RedisPlugin 的用法分为三种情况:
1:每个 RedisPlugin 对象连接到不同的 redis 服务端
2:每个 RedisPlugin 对象连接到同一个 redis 服务端的不同 db
3:以上两种情况的混合

第一种情况的例子:
new RedisPlugin("r1", "192.168.1.111");
new RedisPlugin("r2", "192.168.1.222");
通过 Redis.use("r1") 就能访问 ip 后缀为 111 的服务端,通过Redis.use("r2") 就能访问 ip 后缀为 222 的服务端

第二种情况的例子:
new RedisPlugin("r1", "localhost", 6379, 3000, "myPasswrod", 1);
new RedisPlugin("r2", "localhost", 6379, 3000, "myPasswrod", 2);
以上两个 RedisPlugin 同时连接到了 localhost 这同一个服务端的不同的 database,第一个为 db 1 第二个为 db2,注意看最后一个参数就是 db 号
通过 Redis.use("r1") 可直接访问 db1,通过 RedisUse("r2") 则直接访问 db2,通过这种方式就不再需要使用 select(db) 来切换 redis 的 db

第三种情况是上面两种情况的混用,在此不在赘述