开发者社区> 问答> 正文

能通过请求路径获取这个对应controller类的路径吗? 400 报错

能通过请求路径获取这个对应controller类的路径吗? 400 报错

比如我有个localhost:8080/xxx/admin的请求路径, /admin对应的是某个controller里面的方法.

我能通过这个请求路径获得对应所在controller的路径吗?

展开
收起
爱吃鱼的程序员 2020-06-04 16:28:58 578 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    因为只考虑路径,忽略了其他因素,当前的版本,可以考虑注入RequestMappingHandlerMapping,调用getHandlerMethods()获取到全部的对应信息,然后遍历 如果除了路径还考虑其他的因素,可以实现一下httpservletrequest接口,然后调handlermapping的公用方法即可######

    引用来自“逝水fox”的评论

    因为只考虑路径,忽略了其他因素,当前的版本,可以考虑注入RequestMappingHandlerMapping,调用getHandlerMethods()获取到全部的对应信息,然后遍历 如果除了路径还考虑其他的因素,可以实现一下httpservletrequest接口,然后调handlermapping的公用方法即可
    第一个是可以的.
    我现在有个小项目是有一部分后台请求和所有前台请求需要过滤的.想通过springmvc拦截器拦截.前端所有请求(包括.jsp直接访问)不判断是否登录,后端除去登录等其他所有请求判断登录(未登录要跳登录页).前后端页面拦截后处理方式不同,虽然是在目录结构上分了前后台的包,但是无法从请求路径是明确的区分前后台路径.我也想过在请求路径上加个前缀表明一下前后台路径(感觉写死了也不好,前台都是/before开头后台都是/after开头..),也想过前后台分离(屁大点项目又觉得没必要),请问有没有更加简便更好的方式.######回复 @逝水fox : 谢谢谢谢!######么就不用这么麻烦了,如果你用RequestMapping注解来配置的Controller的话,拦截器的handler参数(类型为Object)可以强转为HandlerMethod类型,通过他就可以获取到Controller类和Method实例,判断就好解决了。
    2020-06-04 17:49:42
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载