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

2017-03-03 11:43

调用的代码没有贴出来,sharedStaticMethod 应该是这样来调用:#(stripTags(...))

2017-03-03 11:41

刚刚还在前一个贴子希望楼主可以分享呢。三种扩展方式都非常简单,代码量极少,越来越多的小伙们开始在用 jfinal template engine 扩展出各种好玩的功能了。

感谢你的分享

2017-03-03 11:38

@gaurder jfinal 是极简设计,为了保持极简,很多功能都在克制不去做,只做了最常用的功能,但 jfinal 提供了简单且丰富的扩展方式,扩展起来很容易,如果有啥扩展,还请来分享频道分享给小伙伴们

2017-03-03 11:30

这个得呼出 @如梦技术 @卢春梦 大神

2017-03-02 20:53

@wendell620 你自己也可以改进,将 ParaDirective 中的 setExprList 这个方法删掉就可以了