2018-03-08 11:31

先用不带参的 getFile() 确定一下能否拿到 UploadFile 对象,然后再将参数调整恰当

getFile 参数的含义在代码中有注释,鼠标停放在方法上,可以看到注释,通过注释去使用这些参数

2018-03-08 11:10

@codeLife 期待开源

2018-03-08 11:09

当然可以,just do it

有人这么来玩过:
public class AppConfig extends JFinalConfig {
Engine engine;
public configEngine(Engine me) {
me.setDevMode(true);
engine = me;
}

public void afterJFinalStart() {
engine.addSharedObject("Db", Db.use());
}

// 其它 configXxx() 方法省略
}

然后模板中这样来用:
#for( x : Db.find("select * from article limit 10"))
#(x.title)
#end

总之,记住 enjoy 的表达式是与 Java 直接打通的,就掌握了 enjoy 的 90% 的用法

2018-03-08 10:46

这个呼出作者 @小木学堂 大神

2018-03-08 10:45

同一个 Model 是无法 “分别” 或者叫 “同时” 映射给两个不同数据源的,因为这样做没有意义,而且会出问题

因为 Model 中所有 api 去找数据源的时候,都是通过 getClass() 拿到自己是什么 class,然后将这个 class 当成 key 去 Map 中找数据源,而 Model.class 是全局唯一的,必然也只能对应一个数据源

如果希望 model 切换数据源,只能是临时来切换,像这样:
model.use(config).find(...);

上面说了这么多,其实你只要问你自己下面一个问题就可以了:
假定有下面的配置:
arp1.addMapping("config", "id", Config.class);
arp2.addMapping("sys_config", "id", Config.class);

那么 new Config().findById(123); 这行代码到底是去 "config" 还是去 "sys_config" 数据源去查询? 所以我前面说的同一个 Model 映射到多个数据源没有意义

2018-03-07 21:46

@pfjia 博客可以简洁,码云上的代码可以是我建议的,或许有人会用上

2018-03-07 20:02

@可乐加冰 你还可以通过扩展 RenderFactory, 接管里头的 getRender 方法,完全控制 view 这个变量的规则

2018-03-07 18:14

考虑开源不?

2018-03-07 16:28

@可乐加冰 在拦截器中很容易拿啊:
inv.invoke();
Render render = inv.getController().getRender();
if (render instanceof TemplateRender) {
...
} else {
...
}

Render 对象中还有直接操作 view 的方法,极度容易

2018-03-07 16:10

renderCaptcha() 即可,有很多项目都有实际的例子,本社区就有,可以看看 jfinal.com/login 页面中怎么用的,也可以加入俱乐部获取整套代码

2018-03-07 16:09

viewPath 配置本身不能动态改变,但你在 render 时,或者 render 完成以后都可以再改变其中的 view 参数值

而 view 参数就包含了 viewPath,所以就相当于可以动态改变 viewPath,只是方式不同

2018-03-07 15:10

有个小建议,Java8ModelBuilder 中不要使用 super.build(...) ,建议参考已有的几个 Builder 来写:
https://gitee.com/jfinal/jfinal/tree/master/src/main/java/com/jfinal/plugin/activerecord/builder

因为 supert.build(...) 调用完以后,再进行 for 循环的话,相当于每个 model 多一次循环,性能会差一些,如果仿照已有的 ModelBuilder 去扩展,虽然是多了点代码,但性能高

2018-03-07 14:22

对 jfinal 源码非常了解,扩展十分有深度,感谢你的分享

2018-03-07 14:13

@HeathClieff 注意看文档的第三小节: http://www.jfinal.com/doc/5-13

加餐:有些同学希望在 sql 文件中获取getSqlPara(String, Object… paras) 方法传入的paras参数,可以通过表达式 _PARA_ARRAY_[index] 来获取到下标为index的参数值

具体到你的应用:
if(null == _PARA_ARRAY_[index])