2018-11-14 00:34

不同数据源要为其生成不同的 Model,将生成器 copy 成两个生成器,分别给定不同的配置,生成到不同的地方

生成的 _MappingKit 也可以配置不同的名称,例如:_DataSourceAaaMappingKit、_DataSourceBbbMappingKit

然后不同的 ActiveRecordPlugin 对象用上不同的 MappingKit

多个数据源,就是多套 ActiveRecordPlugin、生成器、MappingKit

做事务用 Db.use(...).tx(...) 即可

2018-11-14 00:30

@hotsmile 用好 EvictInterceptor 拦截器做缓存清除即可

2018-11-14 00:29

实在顾上不,现在有几个大事都等着要开发呢

2018-11-14 00:27

@flash866 其中一个是你上传的时候,在你自己的资源管理器中就有的文件名,另一个是上传保存到服务器端的名字,这两个值一般是一样的,但如果服务器端有重名文件出现,那么其中的一个会被自动改名,避免覆盖掉服务器上的文件

2018-11-14 00:24

@Jrookie 新版本已经是调用的 getDate(...) getTime(...) 这样的用法

2018-11-14 00:22

贴子中的 paramVid 传入业务层就是正确的用法

2018-11-12 09:10

Ret 与 Kv 在实现上几乎没有区别,前者多了与 state 有关的方法,如: isOk()、isFail()、ok()、fail()

在用途上稍有不同,Ret 是 return value 的缩写,一般用于方法返回值或者在 controller 中 renderJson(ret)

Kv 是 key value 的缩写,一般用于封装传递参数

2018-11-11 15:34

@happyboy 可以扩展一个 #eval 指令出来,这类功能扩展起来很方便

2018-11-11 15:33

这个得看微信支付平台的文档,这里肯定是不知道的

2018-11-11 15:32

这种情况不用配置在 session 中, 在 session 中不划算,直接用 enjoy 的 shared object 扩展即可,例如:
engine.addSharedObject("myConfig", myConfig);

用的时候直接用,例如:
#(myConfig.value)

2018-11-10 22:36

@北流家园网 你这么长的 SQL 是用什么方式来管理的,用了 jfinal 内置的 sql 管理功能没有?

2018-11-10 20:36

如果你不想弄 root 这个根 name 来取值,需要做个扩展指令来将 root 对象赋给一个变量,然后取值,例如这么来用:
#setRoot()

然后后面的用法,与前面的完全一样,同样有个 root 对象可以使用
##set(keyList = [ ])
#for ( key : list_index)
#(keyList.add(key), null)
#end

#for ( key : keyList)
#for (x : root.get(key))
#(x.name)
#end
#end

关键在于这个 #setRoot() 指令怎么实现,其实极其简单,大致代码如下:
public class SetRootDirective extends Directive {
public void exec(Env env, Scope scope, Writer writer) {
scope.set("root", scope.getRootData());
}
}

本质就一行代码解决问题: scope.set("root", scope.getRootData());

最后别忘了配置一下:
engine.addDirective("setRoot", SetRootDirective.class);

2018-11-10 20:31

这个你得有办法获取最外层的 hash 对象,最好是取个名为好,例如:
{root : {
"list_index":["a","b","c",...,"z"],
"a":[{},{},...{}],
"b":[{},{},...{}],
...
"z":[{},{},...{}]
}
}

然后可以这么来玩:
#set(keyList = [ ])
#for ( key : list_index)
#(keyList.add(key), null)
#end

#for ( key : keyList)
#for (x : root.get(key))
#(x.name)
#end
#end

2018-11-09 23:11

文档有一个分页的小章节专门讲过这类问题,原理也讲过

2018-11-09 23:10

整个 sql 最外面套一个 select * from (原 sql在此) as temp