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

将部分uri捕获到PathVariable的Spring请求映射

姜智渊
2023-03-14

我需要一些类似的东西来在这里输入链接描述
,所以我的路径将是:/something/else/和/some/more我想像这样映射它:

@RequestMapping(value="/something/**", method=RequestMethod.GET)
public String handleRequest(String theRestOfPath){ /***/ }

@RequestMapping(value="/something/**", method=RequestMethod.GET)
public String handleRequest(String[] theRestOfPathArr){ /***/ }
@RequestMapping(value="/something/{a}/{b}/{c}", method=RequestMethod.GET)
public String handleRequest(String a, String b, String c){ /***/ }
@RequestMapping(value = "/something/**", method = RequestMethod.GET)
@ResponseBody
public TextStory getSomething(HttpServletRequest request) {
    final String URI_PATTERN = "^.*/something(/.+?)(\\.json|\\.xml)?$";
    String uri = request.getRequestURI().replaceAll(URI_PATTERN, "$1");
    return doSomethingWithStuff(uri);
}

共有1个答案

吴同
2023-03-14

如果将HttpServletRequest作为方法的参数,则可以访问正在使用的路径。即:

@RequestMapping(value="/something/**", method=RequestMethod.GET)
public String handleRequest(HttpServletRequest request){
    String pattern = (String) request.getAttribute(
                     HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE);
    String path = new AntPathMatcher()
            .extractPathWithinPattern(pattern, request.getServletPath());

    path = path.replaceAll("%2F", "/");
    path = path.replaceAll("%2f", "/");

    StringTokenizer st = new StringTokenizer(path, "/");
    while (st.hasMoreElements()) {
        String token = st.nextToken();
        // ...
    }
}
 类似资料:
  • 很抱歉再次问这种问题,但我无法通过查看其他线程和Spring doc来解决我的问题。 我正在使用maven的3.1.0.RELEASE,并尝试使用注释和java配置。 以下是我的web.xml: 这是我的档案web-application-config.xml. 我有两个类。第一个配置视图解析器 第二个定义我的控制器: 根据我的配置,我想一切都应该指向我的home()函数。然而,事实并非如此,以下

  • 我正在尝试学习Spring Security性,第一个代码示例是在运行URL“http://localhost:8080/spring-security-helloworld-xml/welcome”并使用jetty插件作为服务器时出现这样的错误。 错误:org.springframework.web.servlet.pageNotFound noHandlerFound警告:在名为“mvc-di

  • 问题内容: 我有这段代码: 据我所知,它应该接受一个test.json?tipo = H请求并返回Variavel []的JSON表示,但是当我发出这样的请求时,我得到了: HTTP状态406- 类型状态报告 信息 description根据此请求标识的资源只能根据请求的“ accept”标头()生成特性不可接受的响应() 通过使用以下功能,我可以获得预期的json: 我做错了什么? 问题答案:

  • 这是我的网站。xml 我的servlet上下文。xml 最后是Handler类。这是在com下。比如Spring。控制器。恳求 但是,我们将转到 它返回404错误。 这是我的项目结构

  • 问题内容: 我正在尝试设置一个Spring MVC项目。我添加了一个调度程序servlet,一个jsp并设置了web.xml文件。但我不断 WARN org.springframework.web.servlet.PageNotFound-在DispatcherServlet中,名称为“ HelloWeb”的URI [/safesite/WEB-INF/jsp/hello.jsp]的HTTP请求未

  • 问题内容: 我正在尝试设置一个Spring MVC项目。我添加了一个调度程序servlet,一个jsp并设置了web.xml文件。但我不断 WARN org.springframework.web.servlet.PageNotFound-在DispatcherServlet中,名称为“ HelloWeb”的URI [/safesite/WEB-INF/jsp/hello.jsp]的HTTP请求未