2016-12-20 16:19

ContextPathHandler 里面的代码是什么? 与 WebSocketHandler 在 add 的时候交换一下位置试试

终极解决方法是设置断点,单步调试到 WebSocketHandler 中去看程序走向,不要去猜测程序的行为,要调试

2016-12-20 15:50

如果不希望创建类,可以直接用 Db + Record 模式,完全不需要 Model

2016-12-19 20:02

@lidakai88 建议查查 druid 的官方文档,看它是怎么配置的这个参数,jfinal 对 druid 做了极薄封装,应该从这方面下手是可以的

2016-12-19 17:14

@吉祥日 很快就会有更牛逼的功能了,多多关注社区动态

2016-12-19 16:53

总之:在 JFinalJson、Fastjson、Jackson 这三个类中的 toJson(...) 方法中设置一个断点进行调试,就清楚具体是怎么被转换的了,问题会立即得以解决

2016-12-19 16:52

SysModule 类里面添加的属性,如果用的是 JFinalJson ,并不会被转换, JFinalJson 只会去转换 put 或者 set 到 Map attrs 中的数据,所以只需要这样:
sysModule.put("children", children) 即可

如果你的 SysModule 中的 children 属性配备了 getter 方法,可以用一下 fastjson 或者 jackson 来转换:
Fastjson.getJson().toJson(...)
Jackson.getJson().toJson(...)

jfinal 提供了三种 json 转换实现,前面两行代码分别是 fastjson还有 jackson,这两个是根据 getter 方法去转的。还有是一种是 JFinalJson,这样用:
JFinalJson.getJson().toJson(...)
JFinalJson 实现类是根据 model 中的 Map attrs 或者 Recod 中的 Map columns 来转换的,不会理会 getter 方法

2016-12-19 16:47

@流浪的童鞋 能获取到值就好,多单步调试,很容易找到原因

2016-12-19 15:59

这段代码貌似不存在任何与 jfinal 有关的部分,应该是纯 jstl 问题,好多年不用 jsp,无法给到确切的帮助,建议去群里问问

2016-12-19 10:45

@天籁 多个拦截器可以通过 InterceptorStack 组装成一个拦截器,在用的时候就相当于在用一个拦截器,可以试试

2016-12-19 10:34

@天籁 拦截器上加拦截器,相当于就是在拦截器之前加拦截器,与我介绍的方法是一样的

2016-12-19 10:32

理论上来说,你在哪调用都可以,只不过调用之前的所有代码不会被短路而已

2016-12-19 10:31

@FS心情 最好是在所有代码之前调用一次,例如你的
protected void validate(Controller c) 在第四行,那么第五行调用一次,总之,越早调用越好,因为你不是需要短路么?早调用早短路,就这么简单

2016-12-19 10:16

先调用一次 this.setShortCircuit(true) 即可极速打完收枪

2016-12-18 22:48

@xbb0220 使用 spring 也可以参考 ModelRecordElResolver 来做增强,此外 jfinal 2.3 对这个类又进行进一步增强,满足目前所有需求

2016-12-18 22:14

@lyh061619 这种功能不需要这么麻烦,直接在 Validator 中通过 controller.getMethod().equals("POST") 做判断,不处理 GET 方法,直接 return 即可