2017-07-18 10:46

@XIAOXIAO_ 看到你的代码中有这么一句:
Plugins me = new Plugins() 就知道你是想独立于 jfinal 的 web 来使用 ARP,因为 Plugins 这个类仅仅在 jfinal 自己创建时才会起作用,内部会回调它里的一些方法

你自己 new Plugins 是完全没有任何意义的,你只需要手动调用其 start() 即可:
c3p0Plugin2.start();
arp2.start();

这也就是我所说的独立去使用,多调用个 start() 而已,手册上有

2017-07-17 23:46

配置方式参考一下首页下载的 jfinal demo,在 web.xml 中添加一个 JFinalFilter 即可,其它地方参考手册就好

2017-07-17 21:23

在第一个 action 中先使用 createToken 创建 token,回到页面时将该 token 值放入表单隐藏域中与数据一起提交到第二个 action,在第二个 action 中通过 validateToken 验证,用来判断是否重复提交

2017-07-17 18:46

@2222222 Kv.by 是静态方法,在创建 kv 对象的同时置入一个 key value 值,而 Kv.set 仅仅只是置入值,并不会创建 kv 对象,只要用一下就知道区别了

2017-07-17 17:33

最后补充一句,每次发新版本都可以在本站下载到 changelog.txt 文档,通常每次发版本是半年到一年左右,足够时间下载这个文档,以及升级了,有不少小伙伴永久保存了每个 jfinal 版本的所有资源

2017-07-17 17:32

jfinal 每次发新版本都会发布 changelog,看一下这个页面右侧的发布新闻链接:
https://www.oschina.net/p/jfinal

后面两个版本可能没直接贴出来 changelog,可以在本站的分享频道获取:
jfinal.com/share

最新版本的 changelog 可以在本站首页右侧下载到:
jfinal.com

此外,如果碰到任何问题,可以通过查看 jfinal 手册来解决,jfinal 手册第一章有对升级的说明

2017-07-17 17:29

jfinal weixin 很早就支持多公从号了,文档在此: http://git.oschina.net/jfinal/jfinal-weixin/wikis/home

2017-07-17 15:14

@youyuyang 调用过任何类型的 render 方法或者 forward redirect 方法都可以

2017-07-17 12:02

必然是 sql 放在 service 中更好,如果 sql 复杂可以放到 sql 模板文件之中,sql 无论放哪里,但数据库操作必须是放在 service 中

放在 service 中更有利于重用,以及做分布式与集群,如果放在 model 中,那么在做分布式集群时不方便将 model 抽取成独立的 module

2017-07-17 10:57

异常信息是什么? 否则无法知道错误原因

2017-07-16 11:27

主流程是先获取一个 token 值,提交的时候这个 token 值作为参数一起提交,后端再通过 validateToken 进行验证,验证通过则放行。

机制定好了,具体怎么玩看你自己的应用场景,你上面的疑问是具体问题,而 token 的机制是一个底层问题

此外,如果 BlogValidator 中的验证代码很少,也可以不需要这个类,简单的在 controller 中通过下面的代码来验证 token 即可:
if (validateToken()) {
do service;
} else {
renderJson("msg", "请勿重复提交");
}

2017-07-16 11:20

必须是可以的,只需要写点 Mock 类进行辅助就好,如果自己懒得写可以用一下现成的:
https://git.oschina.net/brucezcq/JFinal-ext2/tree/master/src/test/java/com/jfinal/ext/test

别忘了用上以后写个分享出来,帮助到更多的小伙伴

2017-07-16 10:54

直接接写一个 RedisExt 类,然后里面直接添加一些你自己需要的方法去用就好,用的时候这样 RedisExt.xxx(...);