JFinal框架在特定情况下拦截器失效

考不上住 发布于 2013/07/30 18:06
阅读 288
收藏 1

@JFinal

如图,在访问 /../money 的时候效验器可以正常工作,但是访问 /../money/pay 的时候效验器就没有执行,不知道为什么

加载中
1
考不上住

引用来自“黑牙菜菜”的答案

你可以看下ActionHandler类的看它为什么没有匹配到
我已经找到原因了,是我自己写错了。效验器确实执行了,但是我在效验不通过的时候是直接 setAttr() 来这只错误信息,而没有使用addError() , addError()会设置invalid=true; 效验器后边的方法就不会执行,我这样就会导致在效验错误后仍然执行方法。之所以觉得在访问/../money时效验器执行了是因为在money方法中还没来得及写render方法,所以就直接输出效验器中的render了。谢谢您的回答了
0
红星xx
红星xx
开 dev 模式 ,看控制台 输出 ,就知道 效验器 在工作么。
考不上住
效验器工作了,是我自己写错了,谢谢您的回答
0
黑牙菜菜
黑牙菜菜
JFinal认为你的路由为  money 类的pay 方法,请用正确的传参方法
考不上住
这个我没能理解,您能写的详细点吗?我看源码,是这么做的:先全部匹配url,匹配到后从mapping中返回action,如果没能全部匹配,便从最后一个“/” 之前的url进行匹配,匹配到了便返回这个action,并把最后一个“/"后的字符作为参数。这里这个action已经执行输出了了,但是里边的拦截器没有执行。
0
黑牙菜菜
黑牙菜菜
你可以看下ActionHandler类的看它为什么没有匹配到
返回顶部
顶部