2017-03-04 11:43

配置一下 ActiveRecordPlugin,代码如下:
arp.setContainerFactory(new OrderedFieldContainerFactory());

2017-03-04 11:33

@坚强的地瓜 这篇贴子就是在 jfinal 3.0 还没发布时发的,所以是一定可以用的,再多试试

2017-03-03 23:21

@nelsonnick Db.paginate 其中的参数仍然是 sql,所以也可以用 template engine,但并没有提供针对性的支持,下一版本 jfinal 3.1 会提供针对性的支持

2017-03-03 20:22

@程序小小白 这种用法非常之普遍,一定是可以的,具体报什么错误要贴出来,根据异常信息去解决问题

此外,一般是将参数额外传进去:
Db.update("delete from user where power=?", power);
不要将参数拼接在 sql 字符串之中

2017-03-03 18:19

存放在 session 中的值如果希望在页面使用,添加一个全局拦截器:
me.add(new SessionInViewInterceptor())

然后就可以在页面通过 #(session.object.value) 这种形式进行访问了,建议先看一下 jfinal 手册中的基本用法

2017-03-03 16:44

这里的 me 对象是 static 的,只会被创建一次,对 me 方法的调用是线程安全的,所以是完全并行的,没有锁的存在

2017-03-03 15:44

第一个问题,就是指改成与数据库字段一样

第二个问题,仍然可以使用 getModel(Student.class, true) 来获取,只不过在最后面添加一个 true 参数

addExcludeTable 可以处理 view,你可以使用正则表达式,或者通过配置文件的方式去除掉不要的 view,你也可以直接覆盖掉 getTablesResultSet() 方法,将:
new String[]{"TABLE", "VIEW"}
改成:
new String[]{"TABLE"}

总之 Genereator 中的所有方法都是面象扩展的,希望大家能举一反三的去扩展

2017-03-03 15:40

@caoxusheng @要输就输给追求 没错,就是 Db.update(sql, .... )

2017-03-03 15:36

@flash866 肯定可以的,可能是你的参数类型或者参数个数不对

2017-03-03 15:36

先从 cookie 或者 session 中取出来,然后通过将 getModel 得到的 model 调用一下 model.setXxxx(...) 即可

2017-03-03 15:34

@sruz 看一下 json 模块的源代码,代码很少,一看就全明白了,用生成器生成然后切换到 fastjson 以后,用着很方便, jfinal 下一版本考虑让 fastjson 支持 record,fastjson 使用将更方便

2017-03-03 11:52

第一个问题,最简单的办法是改一下页面的属性值,或者在 controller 中通过 getPara("student.name") 来获取,再 student.setStudentName(...) 给设置进去

第二个问题,jfinal 生成器所有组件都面向扩展设计,所以通过创建 public class MyMetaBuilder extends MetaBuilder,并覆盖其 isSkipTable(...) 方法,对其中所有 view 视图进行过滤就好

第二个问题,如果在 view 很少的情况下,还有一个简单办法是通过 generator.addExcludedTable(...) 来进行过滤,不需要扩展

2017-03-03 11:48

最彻底的办法是将数据库表的字段名做成驼峰形式的,如果做成了下划线形式,用如下办法:
1:为 model 生成 getter、setter 方法
2:使用 me.setJsonFactory(new FastJsonFactory()) 将 json 转换切换成 fastjson 实现

原因是 jfinal 默认用的 JFinalJson 实现类做的 json 转换,而这个转换实现类是直接从 model 中拿的 Map attrs 属性做的转换,不走 getter 方法

注意上面方法的一个副作用: fastjson 不支持 Record 对象的转换

2017-03-03 11:45

@jikes 非常确定的是: 只需要初始化一次就好,再仔细看一下 jfinal 手册,有关 ActiveRecordPlugin 用于非 web 项目的那一章

那一章的标题说是用于非 web 项目,但更贴切的说法应该是:自行初始化及启动 ActiveRecordPlugin