2019-04-25 11:21
@xiaoming1234 有某些地方,由于对象的创建并非 jfinal 接管的,所以无法使用 @Inject 注入,此时可以使用 Aop.get(...) 来实现,例如:
public class UserValidator extends BaseValidator {
UserService userService = Aop.get(UserService.class);
...
}
2019-04-25 11:19
@小亮 照样可以用 sql 模板,通过模板你可以获取到:
SqlPara sqlPara = Db.getSqlPara(...);
可以通过 String sql = sqlPara.getSql() 获取到 sql, 还可以通过 Object[] para = sqlPara.getPara() 获取到 para,而查询方法几乎都接受 String sql、Object ... para 这两个参数
此外,还可以单独获取 sql :
String sql = Db.getSql(...);
综上,你可以通过定义两个 #sql("one") #sql("tow") 分别定义两个 sql,然后传给 paginateByFullSql 使用
2019-04-25 09:48
@bbq1072 下载本站首页的 jfinal demo for maven,然后在本地跑起来,在 IndexController.index() 中的 render 改成 renderCaptcha() 测试一下行不行
如果不希望导入数据库就能跑起来,可以注掉 configPlugin 中的 ActiveRecordPlugin 有关的代码
2019-04-25 09:47
@shate 具体是怎么解决的? 修改这个贴子,补充一下内容,对社区其他同学会有帮助,谢谢
2019-04-25 09:44
这个地方,最初是为了减少一个 if ( config == null) 判断,属于对于性能极致的强迫症犯了
后来有不少人碰到这个异常,想加上一个 if 判断,进行提示,但已经有人在这么使用了:
Config config = getConfig();
if (config == null)
...
也就是说, null 值的 config 对于有些用户的场景是有意义的,如果现在加上 null 值判断并抛出带有明确提示信息的异常,兼容性会有问题
如果是我自己用早就加上 if 判断并抛出 new IllegalStateException("当前 model 未映射"),进化 8 年的 jfinal 做出任何改变都要考虑很多