有时候需要根据url反查controller,如果能获取所有的url,则不用跟据url去代码里搜了,方便开发人员、调试人员或交接人。
关键对象:RequestMappingHandlerMapping
import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.condition.PatternsRequestCondition; import org.springframework.web.servlet.mvc.condition.RequestMethodsRequestCondition; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; @Controller public class MappingController { @Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping; @RequestMapping(value = "/mappings") public String list(Model model) { List<HashMap<String, String>> urlList = new ArrayList<HashMap<String, String>>(); Map<RequestMappingInfo, HandlerMethod> map = requestMappingHandlerMapping.getHandlerMethods(); for (Map.Entry<RequestMappingInfo, HandlerMethod> m : map.entrySet()) { HashMap<String, String> hashMap = new HashMap<String, String>(); RequestMappingInfo info = m.getKey(); HandlerMethod method = m.getValue(); PatternsRequestCondition p = info.getPatternsCondition(); for (String url : p.getPatterns()) { hashMap.put("url", url); } hashMap.put("className", method.getMethod().getDeclaringClass().getName()); // 类名 hashMap.put("method", method.getMethod().getName()); // 方法名 RequestMethodsRequestCondition methodsCondition = info.getMethodsCondition(); String type = methodsCondition.toString(); if (type != null && type.startsWith("[") && type.endsWith("]")) { type = type.substring(1, type.length() - 1); hashMap.put("type", type); // 方法名 } urlList.add(hashMap); } model.addAttribute("list", urlList); return "/console/system/mappingList"; } }
然后再在页面上遍历list即可
<table class="tableList" > <tr> <th>类名</th> <th>方法名</th> <th>URL</th> <th>类型</th> <tr> <c:forEach items="${list}" var="mvc" varStatus="status"> <tr id="${status.index}"> <td>${mvc.className}</td> <td>${mvc.method}</td> <td> <c:choose> <c:when test="${!fn:contains(mvc.url,'}') and (mvc.type=='GET' or mvc.type=='')}"> <a href="${ctx}${mvc.url}" target="_blank">${mvc.url}</a> </c:when> <c:otherwise>${mvc.url}</c:otherwise> </c:choose> </td> <td>${mvc.type}</td> </tr> </c:forEach> </table>
相关推荐
9 import org.springframework.web.servlet.mvc.Controller; 10 import org.springframework.web.servlet.ModelAndView; 11 12 import javax.servlet.http.HttpServletRequest; 13 import javax.servlet....
Spring MVC基于Model-View-Controller(MVC)架构模式,优化了Web应用程序的设计和开发。在Spring MVC中,DispatcherServlet作为前端控制器,负责请求的接收和响应结果的处理。处理器映射器(HandlerMapping)和...
spring MVC也是一样,但Spring MVC就像Spring所作的一切一样(灵活,可以配置各种东西,但是也造成了很多复杂性),肯定不会只有一种方法来映射URL和 Controller之间的关系,并且在实际上,允许你自己创建映射规则和...
view-controller (MVC)框架是围绕 DispatcherServlet 设计的,并分发请求到处理程序(handler),Spring MVC支持可配置的处理程序映射(handler mapping),视图解析(view resolution)、 区域设置(locale)和主题解析...
Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器映射、视图渲染、本地化、时区与主题渲染等,甚至还能支持文件上传。...
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发...
-- 启动Spring MVC的注解功能,完成请求和注解POJO的映射 --> 14. <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" /> 15. 16. <!-- 对模型视图名称的解析...
Spring MVC展示柜 通过小而简单的示例演示Spring MVC Web框架的功能。 在回顾了这个展示之后,您应该对Spring MVC可以做什么有一个很好的了解,并了解它的易用性。 包括项目代码以及支持的幻灯片显示和屏幕投射。 ...
接下来我们比较一下Spring mvc和 Spring Boot的开发过程 Spring mvc (1)导入 spring mvc 的相关依赖包 (2)在 web.xml 文件中配置 Spring mvc 的前端控制器 (3)创建一个 spring mvc 的配置文件 (4)在 spring...
中文叫做一次性控制器,也就像一次性筷子那样用完即丢 并不在Spring的Controller继承架构中,而是一个独立的接口定义 当映射的不是一个model 对象时很有用 Bean的作用域必须是prototype ,他们本身不是线程安全的
• 控制层,Controller,URL路径映射 • UserController类、FriendshipController类、StatusController类、 CommentController类、TimelineController类 • 视图层,用户界面 • login.jsp、status.jsp、comment...
Spring MVC 展示 通过小而简单的示例演示 Spring MVC Web 框架的功能。 在查看了这个展示之后,您应该对 Spring MVC 可以做什么有一个很好的理解,并感受到它的易用性。 包括项目代码以及支持幻灯片和屏幕投射。 在...
即有Spring2.5的 Controller接口的老版本 也包含新版Spring3.0,3.1 基于注解的MVC配置方法 总之绝对值得下载 学习 并以后查阅 目录 第一章 Web MVC简介.pdf 第二章 Spring MVC入门 .pdf 第三章 DispatcherServlet...
一个最简单的例子,对构建SpringMVC的基本步骤有个直观的认识。跟struts做了一些比较。
spring mvc spring mvc+mybatis构成的轻量级web服务 ###使用方法 #####1. 下载工程,导入到myeclipse中 #####2. 参照给定的demo package增添业务package以及编写相应的Dao、service以及controller #####3. 编写相应...
Spring MVC(Model-View-Controller)是一个基于Java的MVC(模型-视图-控制器)框架,用于构建Web应用程序。它是Spring Framework的一部分,提供了一种简单、灵活且可扩展的方式来开发Web应用程序。 下面是Spring ...
spring-mvc.xml 配置自动扫描的包、配置视图解析器 如何把 handler方法返回值解析为实际的物理视图、配置静态资源映射静态资源交给默认的Servlet、配置 mvc:annotation-driven标签开启注解(4)@RestController =@...
基于SSM(Spring、Spring MVC 和 MyBatis)的客户关系管理系统是一个用于管理企业客户信息的高效工具。该系统采用先进的技术架构,包括了数据库、Web 应用程序和前端界面,以实现对客户数据的集中管理和分析。首先,...
Spring MVC属于springFrameWork(spring)的产品,它是基于java的轻量级web框架,使用MVC架构模式,将web层进行解耦功能,前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(Handler Mapping)进行处理器...
Spring MVC 展示 通过小而简单的示例演示 Spring MVC Web 框架的功能。 在查看了这个展示之后,您应该对 Spring MVC 可以做什么有一个很好的理解,并感受到它的易用性。 包括项目代码以及支持幻灯片和屏幕投射。 在...