2018-12-18 16:31
这个地方 jfinal 没有改变过,是 Java 8 对于这类参数的行为有变化,看一下源码可知道这里并没有变过
解决办法如下:
1: 做一个 public MyDbPro extends DbPro ,并且覆盖掉你碰到问题的这个 delete 方法,将其中的:
return deleteById(tableName, primaryKey, record.get(primaryKey))
改成下面的代码:
return deleteById(tableName, primaryKey, (Object)record.get(primaryKey))
2:做一个public class MyDbProFactory implements IDbProFactory,内部代码如下:
public DbPro getDbPro(String configName) {
return new MyDbPro(configName);
}
3:将你自己的 MyDbPro 切换上去:
activeRecordPlugin.setDbProFactory(new MyDbProFactory());
记得搞定后回来再反馈一下,然后我可以将这个功能做到 jfinal 3.6 中去,感谢反馈
2018-12-18 16:22
@htjtj5 最简单便捷的方式是通过下面的方法:
拦截器中:inv.getController().setAttr("access_token", ...);
然后控制器中:getAttr("access_token");
还可以让控制器的方法带参:
public void index(String access_token) {
这里可直接使用 access_token 值
}
然后拦截器中这么来传递值:
inv.setArg(0, access_token);
上面这种用法看一下,action 带参功能如何使用:https://www.jfinal.com/doc/3-3
当然,还有很多其它办法,例如弄一个 BaseController,里头弄个 protected String access_token,然后在拦截器中将数据直接赋值给它
2018-12-17 23:43
@badouyuren 改 devMode 为 false 以后无法支持热加载,建议还要要通过 undertow.hotSwapClassPrefix 配置来搞定,记得一定要再反馈给我,Lucene 场景的热加载支持目前只有你这里有