How to show all controllers and mappings in a view How to show all controllers and mappings in a view spring spring

How to show all controllers and mappings in a view


With RequestMappingHandlerMapping in Spring 3.1, you can easily browse the endpoints.

The controller :

@Autowireprivate RequestMappingHandlerMapping requestMappingHandlerMapping;@RequestMapping( value = "endPoints", method = RequestMethod.GET )public String getEndPointsInView( Model model ){    model.addAttribute( "endPoints", requestMappingHandlerMapping.getHandlerMethods().keySet() );    return "admin/endPoints";}

The view :

<%@ page session="false" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><html><head><title>Endpoint list</title></head><body><table>  <thead>  <tr>    <th>path</th>    <th>methods</th>    <th>consumes</th>    <th>produces</th>    <th>params</th>    <th>headers</th>    <th>custom</th>  </tr>  </thead>  <tbody>  <c:forEach items="${endPoints}" var="endPoint">    <tr>      <td>${endPoint.patternsCondition}</td>      <td>${endPoint.methodsCondition}</td>      <td>${endPoint.consumesCondition}</td>      <td>${endPoint.producesCondition}</td>      <td>${endPoint.paramsCondition}</td>      <td>${endPoint.headersCondition}</td>      <td>${empty endPoint.customCondition ? "none" : endPoint.customCondition}</td>    </tr>  </c:forEach>  </tbody></table></body></html>

You can also do this with Spring < 3.1, with DefaultAnnotationHandlerMapping instead of RequestMappingHandlerMapping. But you won't have the same level of information.

With DefaultAnnotationHandlerMapping you will only have the endpoints path, without information about their methods, consumes, params...