Spring Mvc獲取所有注冊URL

廢話不多說,直接上代碼,以下兩種方式獲取SpringMVC中注冊的URL。

@Controller
public class UrlsController {
    // 方法 1
    @ResponseBody
    @RequestMapping("/urls1")
    public Object getUrlMapping(HttpServletRequest request) {
        WebApplicationContext wc = RequestContextUtils.getWebApplicationContext(request);
        RequestMappingHandlerMapping rmhp = wc.getBean(RequestMappingHandlerMapping.class);
        Map<RequestMappingInfo, HandlerMethod> map = rmhp.getHandlerMethods();
        List<String> urls = new ArrayList<>(map.size());
        for (RequestMappingInfo info : map.keySet()) {
            System.out.println(info.getPatternsCondition().toString() + "," + map.get(info).getBean().toString());
            urls.add(info.getPatternsCondition().toString());
        }
        return urls;
    }

    // 方法 2
    @Autowired
    private RequestMappingHandlerMapping handlerMapping;

    @ResponseBody
    @RequestMapping("/urls2")
    public Object index(Long id, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ClassNotFoundException {
        Map<RequestMappingInfo, HandlerMethod> map = this.handlerMapping.getHandlerMethods();
        List<String> urls = new ArrayList<>(map.size());
        for(Map.Entry<RequestMappingInfo, HandlerMethod> entry  : map.entrySet()) {
            System.out.println(entry.getKey() + System.lineSeparator() + entry.getValue());
            urls.add(entry.getKey().toString());
        }
        return urls;
    }
}

對了注意不能Response返回RequestMappingInfo, HandlerMethod對象,否則會報錯。其他web.xml以及springmvc的配置都需要加上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 1.Spring web mvc介紹 Spring web mvc和Struts2都屬于表現(xiàn)層的框架,它是Spri...
    七弦桐語閱讀 11,980評論 2 38
  • Spring mvc 框架 DispatcherServlet前端控制器 ---- 整個流程控制的中心,由它調(diào)用其...
    蕊er閱讀 772評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,057評論 25 709
  • 什么樣的人生活在什么樣的世界。你是個好人,這個世界就對你好一點(diǎn),你是個壞人,這個世界就對你壞一點(diǎn)......這個概...
    許小胖來了閱讀 240評論 0 1

友情鏈接更多精彩內(nèi)容