2018-06-11 18:56

排版出问题了,注意编辑里面有一个按钮是专门用于输入代码的

2018-06-11 18:48

club 前面页面的 _admin_layout.html 中集成了 pjax 的 js 文件,左侧菜单绑定为了 pjax 请求,所以请求中的 _pjax 参数是很正常的,如果没有这个参数反而不正常

看一下那期讲解 club 的直播视频录制

这个参数并不影响功能的使用

2018-06-11 18:46

当然,我前面说的方式你还得将 Java 的 JRE 目录放在与 jar 包的同级目录下面,这样就可以不用安装 JDK 就能启动项目了

我不知道 j2ewiz.1.8.2.1.crk 这个的打成 exe 的机制是什么,难道是将 jar 包也打成了 exe 中, 并且将 java 的 JRE 也打进去了?

2018-06-11 18:44

@keywang 如果做到了 java -jar 可以访问,我倒是建议你写一个 run.bat 以及 run.sh 脚本,里面就放 java -jar .... 这一行脚本就可以了

当然,如果你一定要打成 exe,你还可以保留 jar 文件,只将 run.bat 打成 exe 就可以了

甚至还可以做一个 exe 启动的 UI 界面,启动 UI 界面以后,上面放一个 start / stop 按钮,用鼠标来触发 java -jar .... 的执行

2018-06-11 18:37

jfinal 开源 6 年多,有将近 8 个人左右碰到过 aciton 被请求两次的情况

99% 的原因是客户端真的发起了两次请求。解决办法无一例外,先打开 chrome 浏览器的开发者窗口观察是谁发起了两次请求,多数是 js 发起的

然后调试后端 java 代码,观察请求发起的源头在哪里

无论哪种原因引起的,但肯定是与 jfinal 无关的

几次历史经验表明,如果不采用我上面介绍的方法,想要找到源头并解决问题很不容易,有的人甚至找了两三天都找不到,最后还是通过 chrome 调试 js 代码,发现是 js 发起的请求

2018-06-11 18:27

是 RenderInfo 这个类不支持你用的模板中的 Render,需要扩展一下

2018-06-11 18:15

NoClassDefFoundError 是由于你 maven 下载 jar 包到本地时出现错误

删除本地 maven 库中的 zxing 相关的那个目录,让 maven 重新下载一次这个 zxing

2018-06-11 15:10

关于 jfinal 打成 jar 的问题,可以参考下面:
http://www.jfinal.com/share/786
http://www.jfinal.com/share/422
http://www.jfinal.com/share/860

先确保打成的 jar 包可以使用,然后再制做 exe

2018-06-11 15:08

先确保打成 jar 包以后,通过 java -jar projectName.jar 运行起来以后,可以正常访问

然后再制做成 exe 文件

注意,如果如果希望模板打包在 jar 包中可以访问,需要配置一下:
engine.setSourceFactory(new ClassPathSourceFactory());

上面的配置,需要你在开发的时候就将模板放在 src/main/resources 下面,而不能放在 webapp 下面

2018-06-11 15:05

如果分布式事务代码会比较难看,性能也会有较大损失

等以后有优雅的设计时再加

建议在 jfinal 底层使用第三方中间件来支持,例如 sharding jdbc,对于开发者来说是透明的

2018-06-11 15:03

jfinal enjoy 中的大于、小于号只可能出现在表达式中,也就是说一定会被小括号所包裹。 因此,也就没有了使用 gt lt 的必要

freemarker 这类需要 gt lt 的支持,是因为他的表达式不一定在小手号内,所以会与 html 中的标签产生冲突,造成解析错误或者排版问题

无论是什么情况,gt、lt 这个设计都不是个好设计

2018-06-11 15:02

@aqiang 很可能是你的数据库表中的 uuid 字段前后有不可见字符,先删掉这个 uuid 字段,然后再重新创建一次即可,注意重新创建的时候用手工输入的方式,不要从别的地方 copy

这种事情历史上曾经发生过,最后发现是从别处 copy 来的字段名之后紧随了一个不可见字符,造成了肉眼上看字段存在,但实际不存在

2018-06-11 12:26

起码得两三个月以后了,好多更重要的事情要优先:
jfinal 3.5
jfinal club 1.5
jfinal admin 1.0
jfinal cms 1.0
jfinal 俱乐部的直播系列

2018-06-10 17:38

@maxwade 关键还是得看应用场景,如果做事务的地方非常多,用 @Before(Tx.class) 配全拦截器会更省代码,类似于放在公网上的互联网项目做事务的地方少用 Db.tx 会很方便

2018-06-10 16:26

Db.tx 在 Java 8 使用 lambda 表达式会很优雅,代码很省,例如:
Db.tx(() -> {
这个区域是被事务包裹的地方
return true; // 返回true则提交事务,否则回滚事务
});