2018-12-18 21:31
@寄存心 添加完 jfinal-undertow 这个依赖,jfinal 的依赖就不需要了,因为默认就有了
java 文件添加的地方确实有误,已修正, DemoConfig 中的 package demo 也已添加,谢谢你的反馈
2018-12-18 17:57
@Brant 好多方法呢:
Kv kv = Kv.by(k1, v1).set(k2, v2)....set(kn, vn);
renderJson(kv);
Kv 也可以换成你日常使用的 HashMap
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,然后在拦截器中将数据直接赋值给它