2018-05-13 16:32

在 spring 中想办法 new 一个 Engine 对象自己用,或者将 spring 与 enjoy 整合起来,整合方法见这里:
http://www.jfinal.com/doc/6-10

整合以后可以通过JFinalViewResolver.me().getEngine() 来获取engine 对象去使用

剩下的事情就是在 spring boot 中获取 HttpServletResponse response 对象了,我记得是在 action 中直接放处这个参数即可:
public void index(HttpServletResponse response)

有了 Engine 对象与 HttpServletResponse 对象以后,剩下的事情与你在 jfinal 中的用法就完全一样了

2018-05-12 15:44

这个是由于部分 eclipse 版本不支持造成的,将启动参数中的最后一个参数 5 去掉即可

这里是相关贴子:
http://www.jfinal.com/feedback/2429

在俱乐部专享群里面来交流

2018-05-12 15:43

Model 是 Active Record 设计模式,对于创建、更新、删除操作,只能是对一条数据记录,例如:
new User().setName("James").save();
new User().findById(123).setAge(28).update();
new User().deleteById(456);

因此,model 对于需要同时创建、更新、删除多条数据表记录的功能无法实现,这个时候就需要 Db + Record 模式的帮助,例如:
Db.delete("delete from user where age < ?", 18);
Db.update("update account set cash = cash + ? where id < ?", 1000, 789);

对于查询来说,model 可以将查询结果封装成 model ,方便使用 model 上的具体的 getter 方法来获取数据,例如:
user.getName()
而 record 则只能是:
user.getStr("name")

因此,如果 model 可用则尽可能用 model ,否则使用 Db + Record 模式作为补充

最后, Db + Record 特别适合需要灵活查询的报表系统,返回值的字段高度灵活,表关联复杂的情况尤其好用,因为 Model 中的 getter 方法是固定的

2018-05-12 15:00

@JackZeng 在 web.xml 中可以看到 JFinalFilter,而你可以将你用的 shiro 相关 Filter 写在 JFinlFilter 之前

这样就可以让 shrio 的 filter 先于 JFinalFilter 拦截请求,就可以起到控制权限的作用

2018-05-12 14:59

是不是只有在并发情况下才出现? 并发就会有锁的争用发生,用命令行登录 mysql,
使用 show processlist; 命令查看有没有死锁这类情况发生

通过按向上方向键再按回车键,可以快速不停地执行该命令,看输出表格中的各个状态

2018-05-11 23:22

enjoy 用到炉火纯青了,check() 可以很大程度上解决这个问题, @小99 可以试用一下

2018-05-11 22:55

jfinal 开发的项目就是标准的 java web 项目,必然可以在符合 java web 规范的容器中部署,很早以前就有人在 resin 中部署过 jfinal

2018-05-11 18:37

@hann @Before(Tx.class) 无法跨多数据源回滚,注意一下是不是这个问题

2018-05-11 18:32

这个用的是 freemarker,根据异常去解决一下

或者呼叫一下 jpress 作者 @海哥

@海哥 升级下 jpress 到 jfinal 3.4 以及 enjoy 啊,freemarker 太不爽了

jpress 现在有不少用户呢,不要抛弃 jpress

2018-05-11 17:31

这个问题的确值得考虑,例如可以这样改进:
1:对于带 default 参数的 get 方法,可以让 key 值不存在
2:其它所有 get 方法在获取时,先判断一下 key 值是否存在,如果不存在就抛异常

但这个也会带来点性参损失,或许可以加个开关变量来控制一下

2018-05-11 17:28

@小99 这是一个权衡的问题,有些配置是可以不配置的, 不配置的时候使用默认值,那么就需要支持获取配置的时候允许 key 不存在

或许会有什么好的办法解决,如果有好想法随时反馈给我

此外,在程序中也可以一定程度上来避免,例如采用 boolean int long 这种 primitive 类型作为参数类型,就可以在碰到 null 值参数时起到快速失败的作用

2018-05-11 17:22

@老武 机智如你 ^_^

2018-05-11 11:28

去开源中国搜索一下这方面的第三方工具类库即可

2018-05-11 11:20

jfinal ext2 这个项目应该已经基于 jfinal 封装过这样的功能,可以参考一下:
https://gitee.com/jfinal/JFinal-ext2/tree/master/src/main/ext/java/com/jfinal/ext/render

2018-05-11 11:12

由于 shiro 依赖于 jfinal 的 Routes 这个类中的数据,而 jfinal 3.3 这个版本的 Routes 数据在 ShrioPlugin 启动之后才开始生成的,所以在时机上不对

而 jfinal 3.4 调整了这个 configRoutes 的时机