请问一下波总和其他大神们,JFinal的setDevMode这个方法可不可以只针

请问一下波总和其他大神们,JFinal的setDevMode这个方法可不可以只针对单个controller进行请求时不打印到控制台上?不然一直请求这个controller一直刷,其他的就默认打印就行!
image.png

评论区

JFinal

2019-12-01 12:27

这个功能是专门针对开发模式而来的,用于在开发的过程中及时了解当前调用的情况,以便快速做出开发决策。

也就是说只在开发的时候输出,在部署的时候不输出。

输出到控制台这个动作对性能影响较大,不建议在生产环境下使用

你的需求可以使用下面两个办法:
1:做一个 MyHandler 继承 ActionHandler ,覆盖掉父类的 handle 方法,将 ActionReporter.report(target, controller, action); 这行代码切换到你自己的实现上去,你自己的实现就是指你希望针对个别 controller 不打印的功能。

做好以后在 configHandler(Handlers me) 中配置一下 me.setActionHandler(new MyHandler()),这样就可以将系统默认的 ActionHandler 给替换成你的 MyHandler 了

2: 另一个办法通过全局拦截器来输出你希望的数据,拦截器中有 inv.getControllerKey() 可以得知当前的 controller 是谁,也可以通过 inv.getController().getClass() 得知。

得知以后,通过 if 判断就可以跳过一些你不希望输出的东东了