2018-09-08 12:11

@fansunion 封装的代码都分享出来啊 http://jfinal.com/share

2018-09-08 12:10

这个是提示信息,不是异常信息,启动卡在一个地方不能动,可能是别的原因,例如数据库连接啥的

如果是 maven 项目,删了 eclipse 生成的一些文件,重新当成 maven 项目导入一次即可

2018-09-08 12:08

ueditor 这个组件是一个第三方的组件,但是这个貌似从 2014 年就没再升级了,可能对移动端支持不好

要解决这个问题只能换其它组件

2018-09-07 18:04

@fansunion 下一版 jfinal 3. 5 打算将这个 _getTable() 放开为 public

2018-09-07 17:09

@fansunion _getTable 作用域小了没关系,很多解决办法,下面的办法任选其一:
1:TableMapping.me().getTable(modelClass);

2:通过引入一个 CommonModel extends Model,然后覆盖父类的 _getTable() 方法,将其改为 public 方法即可

2018-09-07 17:06

@Krsguan 这个应该是你使用 json 转换工具对 oracle 驱动中的部分对象进行了转换而已

去除这些对象就可以了,简单到无法置信

2018-09-07 16:59

除了 @天朝子民 同学给的方法以外,还可以这样:

Db.delete("delete from t_car_types where carType=? and cid = ?", "中巴", cid);

2018-09-07 16:53

这个肯定是与 enjoy 无关的,java web 规范中规定的,当你的 href、src 等等资源路径没有使用 "/" 打头时,java web 会默认为你添加上当前的路径

解决办法将路径改成以 "/" 打头即可:
href="/#a1"

2018-09-07 16:49

@fansunion @ddjfinal 没错,enjoy 获取属性很智能,优先看你的 model 是否有 getter 方法,有的话则调用,没有的话调用 Model.get(String) 方法

前者正好支持了驼峰,后者正好支持与数据字段一致

2018-09-07 11:48

new BackgroundProcess(...) 、bp.start() 这类在新建线程中是绝对不能传入 session、controller、request、response 这类参数的

解决办法是从 session、request、controller 拿到该拿的数据传到 BackgroundProcess 之中去

2018-09-07 11:45

不要在拦截器中新开线程执行 controller 方法, Controller 中有属性,其中的 request response 这类是会被 tomcat、jetty 随后接管的,开一个新线程,就有并发操作,数据立即混乱

2018-09-07 11:43

这个完全取决于对方返回的是什么数据, HttpKit.post(...) 只负发请求与取数据,完全不负责对方给你响应什么数据

找问题原因要有个大概的定位,将这类问题定位于 HttpKit 而不是对方的响应,这个偏离太远了

2018-09-07 10:46

不能自己定义, 默认是 19 秒,一般情况是够了

建议用用 OkHttp 这个 http 专用工具, jfinal 中的 HttpKit 只是一个极度简化的小功能

2018-09-06 22:40

@北流家园网 注意看一下 OracleDialect 中的两个方法 fillStatement(...) ,转调的底层的 fillStatementHandleDateType(...) 方法,而这个方法是下面这样的:

protected void fillStatementHandleDateType(PreparedStatement pst, List paras) throws SQLException {
for (int i=0, size=paras.size(); i Object value = paras.get(i);
if (value instanceof java.util.Date) {
if (value instanceof java.sql.Date) {
pst.setDate(i + 1, (java.sql.Date)value);
} else if (value instanceof java.sql.Timestamp) {
pst.setTimestamp(i + 1, (java.sql.Timestamp)value);
} else {
// Oracle、SqlServer 中的 TIMESTAMP、DATE 支持 new Date() 给值
java.util.Date d = (java.util.Date)value;
pst.setTimestamp(i + 1, new java.sql.Timestamp(d.getTime()));
}
} else {
pst.setObject(i + 1, value);
}
}
}

也就是说,会对 java.util.Date 以及它的子类进行判断,并最终转成了:
java.sql.Date、java.sql.Timestamp 这两个类型

并且是调用的 pst.setDate(...) 与 pst.setTimestamp(...),jfinal 3.4 版本在这方面应该是万无一失的,还请大家升级到 jfinal 3.4 多多反馈

2018-09-06 22:35

@北流家园网 jfinal 3.4 已经对 java.util.Date 自动转成了 java.sql.Timestamp 类型,应该是可以的,你用的哪个版本?