2019-04-29 17:20

@zeroabc 确实有这个问题,原因是 Model 的 ModelFieldGetter 比 RealFieldGetter 的优先级要高,也就是说 field 表达式在知道是 model 类型时会默认给定 ModelFieldGetter 来获取数据,解决起来也很容易:

Engine.removeFieldGetter(com.jfinal.template.expr.ast.FieldGetters.RealFieldGetter.class);
Engine.addFieldGetter(1, new com.jfinal.template.expr.ast.FieldGetters.RealFieldGetter(null));

记得搞定后,再来回复一次

这个反馈十分有用,谢谢你

2019-04-29 11:36

@琴海森林 起码要打磨个一两年,追求极致,对用户的感知要有明显冲击,才有高速发展

现代社会用户的时间、感知都被无数信息不断轰炸,要打动人心,必须要有足够的冲击力

2019-04-29 11:22

精品项目,稳步迭代,赞

2019-04-29 10:37

浏览器按 F12,看 js 错误,解决即可

注意 ajax 不支持文件下载,是 http 协议的规定,与 jfinal 无关

2019-04-29 10:35

@GeorgeCao 本质就是你的页面 form 表单有个 input 域的 name="id",但 value 没有,所以 getBean 过来 id 值就是 null

由于 Blog 的 id 值为 null,那么主键自增就无从谈起

主键自增是指,当你没有指定主键值的时候,才去自增,而你已经指定了主键值为 null,所以不会起作用

这个问题本质与 jfinal 无关

2019-04-29 09:59

getBean(Blog.class).remove("id").save();

2019-04-29 09:49

Aop.get(...) 已完全覆盖掉了 enhance 的功能,并且还能支持 @Inject 注入

不建议使用 Enhancer

2019-04-29 09:19

Db.query(...) 即可

2019-04-28 18:34

创建 MyMetaBuilder 继承 MetaBuilder 并覆盖掉其中的 isSkipTable(...) 在这个方法中随心所欲定制要生成的 table 规则

最后配置:
generator.setMetaBuilder(new MyMetaBuilder());

2019-04-28 18:33

问题是?

2019-04-28 16:50

通过下面的代码获取到 druid 的数据源 DruidDataSource 对象:
DruidDataSource ds = DruidPlugin.getDataSource()
然后找找 druid 的官方文档,对这个 DruidDataSource 对象进行一些配置

或者直接使用 druid ,对其配置好 ssl,然后这样传递给 ActiveRecordPlugin
arp = new ActiveRecordPlugin(druidDataSource)

因为 ActiveRecordPlugin 是可以直接接受任何 DataSource 实现类的

2019-04-28 15:19

@li7 这个改动是被逼的,因为3.6 之前基于 JDK 1.6 编译级别没任何问题,而 3.6 版本基于 JDK 1.8 编译级别以后出现类型转换错误

而出现错误的地方 jfinal 完全没动过代码,本质是 JDK 的兼容性问题

为了将升级 JDK 的问题损失降到最低,才添加了 findByIds

2019-04-28 14:06

@li7 这个是你自己封装过,改进起来更容易,只需要将最后一行代码:
return findById(vals)
改成:
if (vals.length == 1) {
return findById(vals[0]);
} else {
return findByIds(vals);
}

2019-04-28 11:12

@crazykids 你用的是 set 方法, 所以会报这个问题, 前面已经给出代码,要用:
put

2019-04-28 11:09

这里还有两个可以实现搜索的项目:
http://www.jfinal.com/project/35
http://www.jfinal.com/share/591

此外,据说 elastic search 还有 sql 插件可以直接使用