访问controller地址没错,但是断点没有进入

controller 代码

blob.png

路由配置

blob.png


页面路径

blob.png


接着我访问 http://localhost/_admin/account

我在 controller 的index 中打了断点,但是没有进入?为什么呢?

页面是成功解析了的,我里面有一个模板,模板都解析了,那我的路径应该就是对的。但是为什么我的断点不进去的,我试过打印一些东西,也没有打印。

求解,急急急!!

@JFinal

评论区

JFinal

2017-08-10 15:08

看一下控制台输出的 jfinal action report,看 url 是什么,被访问的 action 是什么,如果 action 是对的,那么很可能是你的拦截器中的逻辑造成没有调用 inv.invoke() 这行代码

需要调用拦截器中的 inv.invoke() , 才能将调用从拦截器传递下去

Willson_L

2017-08-10 15:41

@JFinal 问题已经找到,是因为我中间调用了一个拦截器,没有 invoke(),但是这样子第二个问题就来了,我明明没有调用 invoke() 这个方法,但是那个页面还是进去了。正常的话,这个页面不是应该进不去了么?

JFinal

2017-08-10 16:39

@Willson_L 当你没有调用 invoke(),也就是没有调用 controller,进而 controller 中的 render 方法也没被调用

当一个请求过来,至始至终都没有调用过 render 方法的话, jfinal 会默认帮你调用一下 render(view),而 view 的规则如下:
view = baseViewPath + viewPath + methodName + ".html"

其中 baseViewPath 是你在 configRoute(Routes me) 中通过 me.setBaseViewPath(...) 设置的,而 viewPath 是 me.add(controllerKey, controllerClass, viewPath) 时调协的

methodName 是你 action 的方法名

JFinal

2017-08-10 16:39

默认调用的这个事情,在手册上有过说明

Willson_L

2017-08-11 09:59

@JFinal 哦哦,明白了,谢谢

热门反馈

扫码入社