2018-06-12 15:28

@hankingxu 这个不是本质问题, 如果你只是 new File(...) ,但并没有往 FileOutputStream 这种流里面写东西,文件仍然是不会创建的

无论如何,jfinal 是不会帮你创建下载文件的,仔细查看一下自己的相关代码

2018-06-12 15:26

仍然是用 sql 和 jfinal 的那些 API,例如:
Db.paginate(....);

2018-06-12 15:25

@songsong123 记得搞定后回来分享一下

2018-06-12 15:25

@songsong123 去掉 sql 后面的分号, 每次只执行一条 sql
Db.update("DROP TABLE IF EXISTS `file_info`");

String sql = "CREATE TABLE 'file_info' ("
+"'id' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"
+"'name' TEXT(200),'path' TEXT(200))");

Db.update(sql);

JDBC 可以执行,而 jfinal 下不能执行,有可能是 druid 这类第三方对中间有分号的语句可能有所保护,防止 sql 注入

还有一个办法是用纯 JDBC 的方式获取一个 DataSource,然后将这个对象传入 ActiveRecordPlugin(dataSource), 这样的话中间就没有第三方了

jfinal 数据库操作在本质上就是 JDBC

2018-06-12 10:40

这个思路很有创意,感谢你的分享

2018-06-12 10:09

代码、 sql 、异常信息一样都没有, 神仙也难猜了

2018-06-12 10:09

到底是在哪里下载的? 如果你在客户端操作下载这个动作, 那么什么叫做服务端下载了一次?

2018-06-11 21:53

@JFinal 有可能是 JDBC 驱动的 bug ,无法反射得出 uuid 这个字段名,升级一下 JDBC 驱动试试

2018-06-11 21:52

@aqiang 改成别的字段名呢? 例如改成 aaa 试一下

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,需要扩展一下