2017-01-01 15:07

start() 与 stop() 方法会别会在 jfinal 启动与停止时被回调,开发插件,只需要实现 IPlugin 接口,在 start() 里面放入希望项目启动时的操作,在 stop() 中放入希望项目停止时的操作即可

除了 Plugin 以外,jfinal 的主要扩展方式有:Controller、Model、Interceptor、Render、Handler,这五个扩展方式相对比较具体,针对于特定需求去扩展,而 IPlugin 就担当起了不确定需求与方向的扩展,因为 jfinal 无法穷尽所有用户需求和场景,而 Plugin 是一个更加抽象化,没有指明具体方向的扩展

2017-01-01 10:51

还有一种简单的办法,就是通过实现 ISerializer 接口并定制序列化和反序列化的策略,然后通过 redisPlugin.setSerializer(...) 设置一下就可以了

此外,还可以通过实现 IKeyNamingPolicy 接口,对 key 的命令策略进行定制

2016-12-31 22:20

context path 是一个很鸡肋的设计,可以完全不需要,在开发的时候尽量去避免使用它,尤其不要在路径中不要涉及 context path 这件事

2016-12-31 22:12

@Irin.Chan 感谢支持 ^_^

2016-12-31 22:12

将 context path 设置为 "/" 就什么事都没有了,参考这里:https://my.oschina.net/jfinal/blog/353062

注意启动项目的方式参考 jfinal 手册,在首页有下载

2016-12-31 12:01

这种方式想法很新颖,以前没看到过还能这么玩的。对于后台管理需要根据不同的条件进行查询与过滤的,这是一种很好的封装方式,能够减少很多代码量,感谢分享

2016-12-30 00:20

目前还没顾得上添加搜索功能,看到有用的文章,暂时可以用一下收藏功能

2016-12-29 17:55

Record 对象 getColumns() 出来的本来就是你需要的 map,所以不需要转换,只要拿到再放入 List 中即可

2016-12-29 17:55

比这快的方法不用转换,类似于下面:
List list = new ArrayList()
for (Record record : pageList) {
list.add(record.getColumns());
}

2016-12-29 10:40

将 action 的路径始终以 "/" 打头,否则路径是由浏览器地址栏中的当前地址联合决定的

2016-12-29 00:05

用 java 的相关 API,看一下 java.io.File 的用法。如果希望下载 C 盘根目录下的文件,只需要这样就好:
renderFile(new File("c:/myfile.zip"));

将 File 对象传给 renderFile 可以访问任何有权限访问的目录与文件

2016-12-28 20:00

前台上传文件,用 getFile(...) 就好

2016-12-28 19:59

有一点疑问,小程序不能订阅,如果有自己喜欢的小程序,用了一次,下次我怎么去找?难道要在手机里面将小程序二维码给截屏保存?下次用的时候再扫?

2016-12-28 19:53

关键在于 Result(200, ua); Result(503); 这两个方法中有没有 render(...),如果有的话,还要注意:UserValidator.handleError(...) 中有没有 render(...),如果没有的话, jfinal 会调用一个默认的 render 方法,规则是:
render(url)
url = controllerKey + methodName + ".html"
这个在 jfinal 手册有说明