2017-08-07 19:43

几乎可以确定是你们自己改过 jfinal 源代码,因为出现异常的代码在 jfinal 中如下:
Map parasMap = request.getParameterMap();

从上面代码可以看出来,变量类型是 java.util.Map,这是绝对不可能出错的,而你的异常提示接收参数的类型是 java.util.HashMap。很明显示是对 jfinal 源码进行改造过的版本

2017-08-07 19:37

@九块腹肌进先生 建议使用 jfinal ActiveRecordPlugin 自带的 sql 管理功能,在 jfinal 手册中有详细的使用说明

2017-08-07 19:36

对工作流不太熟悉,帮不到忙了

建议自己调研一下好用的工作流第三方,直接在 jfinal 中使用即可

2017-08-07 19:35

不用担心,嵌套事务会合并为一个事务,单步调试 Tx.java 即可知道

2017-08-07 19:34

将 cos-26Dec2008.jar 升级到 cos-2017.5.jar 版本

在本站首页可以下载到 jfinal-3.1-all.zip, 从 maven 库中也可以得到

2017-08-07 19:32

@吃桃子的松鼠 先确保 id 字段是自增的,也即在创建时需要设置 autoincreament

其次保障字段名是正确的,例如名称为 "id" 时,通过 getId() 或者 get("id") 获取

2017-08-07 19:23

换一个思路解决,在 configInterceptor(Interceptors me) 方法中添加一个业务层全局拦截器:
me.addGlobalServiceInterceptor(new MyInterceptor());

然后让这个 MyInterceptor 去决定哪些目标有拦截动作,哪些该直接放行,大致逻辑如下:
public void intercept(Invocation inv) {
Object target = inv.getTarget();
if (needInterceptTarget(target)) {
doInterept(target);
}

inv.invoke();
}

2017-08-07 19:17

@Jason、 参考 FakeStaticHandler 稍微改点代码即可解决,大致方向是将 String target 这个值变成最终可以抵达 action 的正确值

例如 target = "detail/25.html" 这种风格,用类似下面的代码搞定:
int index = target.lastIndexof(".");
if (index != -1) {
target = target.substring(0, index);
}
next.handle(target, request, response, isHandled);

然后在 controller 中可以这样:
Integer id = getParaToInt();
setAttr("item", xxService.detail(id));
render(...);

看 FakeStaticHandler 关键在于举一反三,而不在于直接使用

2017-08-07 15:30

参考一下 com.jfinal.ext.handler.FakeStaticHandler 中做伪静态的代码

2017-08-07 15:26

必然可以,用下 @ActionKey(....) 即可

2017-08-07 12:47

改成 protected 可以很方便在继承类中调用,但不方便在拦截器里头调用,可以借签一下 com.jfinal.plugin.activerecord 包下面的 CPI 工具类,让这个工具类与你的 BaseController 在同一个包之让,让 CPI 转调一下即可,用起来还是蛮方便的,例如在拦截器中可以这样:
BaseController bc = (BaseController)inv.getController();
CPI.jsonpRender(bc, jsonText);

2017-08-07 12:43

下一版本会考虑添加一个 @NotAction 注解,跳过这些不希望被当成 action 的方法

2017-08-07 12:38

改成 protected 就可以了

2017-08-07 10:41

@yjjdick1990 自己写一个简单的 web 界面来实现缓存观察的功能,读取数据也用 fst 反序列化就没问题了

试着查看一下 redisDesktopManager 这个工具可不可以指定反序列化与序列化实现类,扩展一下是最好的

2017-08-07 10:39

升级到 jfinal 3.2 即可,去群里找我要 jfinal 3.2 的手册,升级需要注意一个地方