请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于登陆拦截器

老师好,登陆拦截器是不是前端访问controller返回的类型和拦截器返回的类型要一致啊,老师这个项目controller层返回的是Map,拦截器返回的是一个布尔型,我现在写一个统一返回结果,就像老师走逻辑层写的成功返回一个结果,失败返回一个结果,一个意思,拦截器是用aop面向切面,没登陆先抛出一个异常,然后再捕获这个异常,用老师的那个跳转到登陆页面的方法,这里就因为是我controller统一了返回类型,这里是布尔型然后就报异常了,因为这两个返回结果不一样,换成统一返回类型就不报错了,但是这样就只能到前端再处理跳转了,感觉这样不好,老师能解答一下吗?

正在回答 回答被采纳积分+3

1回答

翔仔 2020-08-05 00:06:13

同学好,因为我们为了简单实现,用的spring mvc拦截器interceptor的prehandle方法,是返回布尔值,同学也可以用aop切面的方式,调用invoke方法会返回object,这样经过转化能够做成一致的,这样也是可以的。

0 回复 有任何疑惑可以回复我~
  • 提问者 qq_独闭关中_0 #1
    其实这个登录拦截器我搞了好久了,今天把aop换成了老师用的那个方法,和aop一样是拦截了,但是没有跳转,断点调试都到那里了,试了好久都没有成功,重定向,路由的转发都试过了,不知道是不是我用的是thymeleaf模版的原因
    回复 有任何疑惑可以回复我~ 2020-08-11 00:03:21
  • 翔仔 回复 提问者 qq_独闭关中_0 #2
    是不是有可能是和前面的interceptor冲突了?其他地方有没有拦截了
    回复 有任何疑惑可以回复我~ 2020-08-11 22:38:15
  • 提问者 qq_独闭关中_0 回复 翔仔 #3
    回复 翔仔不会的,用interceptor就把aop给注释了,我在浏览器刷新,network已经有登录页面的地址了,并且是正确的,拦截也生效了的,都查看不了,就是没跳转到登录页面,不管是用interceptor,还是用aop都是一样的,aop的话返回ModelAndView就没有报错了,这个是我目前一直没解决,也不知道是什么原因的问题,也没报错,也有解决的办法,就是返回一个状态值,到前端判断一下再跳转,这样呢前端js就得多些一个判断,这样也不好,还是在后台直接跳转比较好!
    回复 有任何疑惑可以回复我~ 2020-08-12 09:55:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信