当前位置: 首页 > 知识库问答 >
问题:

从HandlerInterceptorAdapter中的控制器获取路径模板

陆英毅
2023-03-14

目前,我正在从Jersey迁移到Spring MVC,并需要提供相同的行为和功能。

在以前的情况下,我们有一个Jersey ContainerRequestFilter来注册Prometheus度量。度量包含资源方法的路径模板。例如:我的资源方法:

@GET
@Path("/some/path/{id}")
public void myEndpointMethod() {
...
}

因此,在ContainerRequestFilter中,我们使用ContainerRequest.geturiinfo().getMatchedTemplates();检索路径模板“/some/path/{id}”

明确地说,我不想获取requestUri(“/some/path/aa-bb-234”),而是匹配的endpoint模式(“/some/path/{id}”)。

共有1个答案

杜君浩
2023-03-14
@Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
        String path = (String)request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
        System.out.println(path);
        super.postHandle(request, response, handler, modelAndView);
    }
 类似资料:
  • 问题内容: 键入标题时,我注意到有关此问题的一些类似问题,但它们似乎不在PHP中。那么用PHP函数解决该问题的方法是什么? 待指定。 有什么好主意吗?谢谢。 问题答案: 试试这个: 这将给 和 和 和

  • 问题内容: 我需要控制器中的应用程序上下文路径,我尝试了下面的代码抛出NULLPOINTER EXCEPTION。 HttpServletRequest请求; 字符串路径= request.getContextPath(); 请帮我 谢谢 问题答案: 变量已声明,但未初始化。难怪你得到一个。 查看文档以访问与请求相关的其他数据。 读完这些并确定要将代码绑定到本机Servlet API后,请尝试以下

  • 我有一个类似这样的Laravel结构: 以及API路线: 但POST请求http://domain.xx/api/register返回内部错误: 类App\Http\Controller\Api\Auth\RegsterController文件中不存在... 我试着指向“。。\认证\RegisterController@register“但我也犯了同样的错误: 类...文件中不存在注册控制器 它应

  • 我想在Xcode或终端中看到它,但如果我需要使用另一个软件,这不是问题。

  • 问题内容: 有没有办法从AngularJS中的当前$ scope中获取控制器名称? 问题答案: 不,不可能。如果属于指令怎么办?没有属性可以检索有关该范围所属的控制器的信息。