当前位置: 首页 > 面试题库 >

如何在视图中显示所有控制器和映射

宦砚
2023-03-14
问题内容

我有一个非标准的Spring MVC项目。用XML响应。是否可以创建一个视图(jsp页面),以显示所有接受的(不是必需的)控制器,映射和参数。

根据答案,我有:

@RequestMapping(value= "/endpoints", params="secure",  method = RequestMethod.GET)
public @ResponseBody
String getEndPointsInView() {
    String result = "";
    for (RequestMappingInfo element : requestMappingHandlerMapping.getHandlerMethods().keySet()) {

        result += "<p>" + element.getPatternsCondition() + "<br>";
        result += element.getMethodsCondition() + "<br>";
        result += element.getParamsCondition() + "<br>";
        result += element.getConsumesCondition() + "<br>";
    }
    return result;
}

我没有得到任何信息 @RequestParam


问题答案:

随着RequestMappingHandlerMappingSpring 3.1,你可以轻松浏览端点。

The controller :

@Autowire
private 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>

你也可以在Spring <3.1中使用DefaultAnnotationHandlerMapping代替RequestMappingHandlerMapping。但是你不会获得相同级别的信息。

有了它们,DefaultAnnotationHandlerMapping你将只有端点路径,而没有关于它们的方法,消耗,参数的信息。



 类似资料:
  • 场景:用户点击视图控制器上的按钮。视图控制器是导航堆栈中的最顶层(显然)。tap调用在另一个类上调用的实用程序类方法。那里发生了一件坏事,我想在控件返回视图控制器之前在那里显示一个警报。 这在中是可能的(但可能不太合适)。 在这种情况下,您如何呈现一个,就在中?

  • 试图简单地从Spring中的控制器输出一个视图报告中所有雇员的列表。得到一个与Freemarker有关的错误,不确定如何解决。 相关类别: java模型 ReportController.java 错误: FreeMarker模板错误(调试模式;在生产中使用RETHROW!):以下内容的计算结果为null或缺少:==>Employee.getname[在template“EmployeesPerB

  • 我必须在我的Android应用程序中列出Firebase Firestore文档中的所有字段。如何落实? 例如在附上的截图中,我必须在我的App中显示文档“HiySLB7YW0DGE5B1MMPigreByJ03”中的所有字段。 文档截图

  • 问题内容: 我正在使用presentViewController呈现新屏幕 这将显示从下到上的新屏幕,但我希望不使用即可从右到左显示。 我使用的是Xib而不是情节提要,该怎么办? 问题答案: 是否使用或正在使用都没有关系。通常,当您将视图控制器推入Presentor时,使用从右向左过渡。 更新 新增计时功能 示例项目与 斯威夫特4 实现加入GitHub上 迅捷3和4.2 对象 斯威夫特2.x 在自

  • 比方说,我有一个名为VC2的视图控制器类的实例。在VC2中,有一个“cancel”(取消)按钮会自动关闭。但当“取消”按钮触发时,我无法检测或接收任何回调。VC2是一个黑匣子。 视图控制器(称为VC1)将使用呈现视图控制器:动画:完成方法呈现VC2。 VC1在VC2被解除时必须检测哪些选项? 编辑:从@rory mckinnel的评论和@NicolasMiari的回答中,我尝试了以下方法: 在VC