2017-12-05 16:02

参考 FileRender 做一个 PictureRender,然后这么来用:
render(new PictureRender(图片文件参数));

2017-12-05 16:01

看一下 JFinalFilter 中持有的 Handler 属性,单步调试进去就知道了

2017-12-05 15:58

@刘进洪 jfinal 并未提供操作 poi、excel 的 api,建议找一下相关文档

2017-12-05 15:58

@小小只植物 单独使用 enjoy 引擎,建议直接看《enjoy 手册》,在首页有下载

2017-12-05 12:27

@Dreamlu 后续会干掉 cglib 依赖,但可以考虑实现 cglib 中的核心功能,一是用来实现业务层 AOP、二是用来实现你建议的让 jdk6、7 都可以用上这个 aciton 参数注入的功能

2017-12-05 11:34

@Dreamlu jfinal-java8 这个 jfinal 版本的 action 参数注入并不依赖于 cglib,而是 java8 自带的 API

cglib 目前仅用于支持业务层 AOP,而且也只是个过渡,有时间会将 cglib 干掉,让 jfinal 重回“对第三方无依赖”

2017-12-05 11:33

先点赞、收藏,有时间的时候看一下是否可以改进这里,感谢你的分享

2017-12-05 11:29

何时回收取决于 JVM 的行为。 此外,你还可以使用下面的代码重复利用 controller 对象:
me.setControllerFactory(new FastControllerFactory());

2017-12-04 21:28

ActiveRecordPlugin 没有启动,或者是当前所使用的 Model 没有映射

如果是自主管理的 ActiveRecordPlugin,需要手动调用一下它的启动方法:
arp.start()

2017-12-04 17:18

@Yuengh 新版本的引擎是 jfinal 新添加的一个功能模块,具体用法可以看一下 jfinal 手册,极其简单

2017-12-04 17:18

设置下方言试试: arp.setDialect(new SqlServerDialect());

2017-12-04 17:16

使用 jfinal 的 Generator,生成 base model,会自动拥有 getter、setter 方法,然后你再通过 Model 来转成 VO 就很方便了

报 The table name: xxx not in your sql 的错误,因为在开发模式下会检查你的 sql 是否包含了主表的表名,这个在 jfinal 更高版本中已经移除了这个判断,建议升级到 jfinal 3.3

2017-12-04 17:13

HttpKit 代码很少,仅实现了极少的常用功能,暂不支持文件上传

推荐用 okhttp 这个第三方来发送 post 方法上传文件,很轻量级

2017-12-04 17:12

根据 @lyh061619 的回复设置一下就可以了:
arp.setTransactionLevel(2);

因为 oracle 不支持 transaction level 为 4。jfinal 只有一个版本才出这个提示,其它版本处理过 oracle 下的 transaction level

2017-12-04 16:35

jfinal 的模板引擎确实还没有整合到 struts 中去,但是只要看一下 jfinal 手册的 第 6.11 章节《 任意环境下使用 Engine》,就知道如何在任意环境下使用了

大致就是先配置,后使用:
1:配置:Engine.use().setBaseTemplatePath(...)
2:使用:Engine.use().getTemplate(fileName).render(...)

render 方法中的参数,可以参考一下 jfinal 中的 com.jfinal.render.TemplateRender 中的用法,就是从 request 中获取一个 outputStream 来用:
OutputStream os = requet.getOutputStream();
Engine.use().getTemplate(fileName).render(data, os);

如果你用到了 shared method、shared function 功能,也就是再添加两行代码的事:
1:Engine.use().addSharedFunction("layout.html");
2:Engine.use().addSharedMethod(new StrKit());

无论是配置,还是使用,代码量都少得惊人