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

Spring REST API没有正确映射路径变量

东郭存
2023-03-14
@RequestMapping(value = {"/product/{id}-{name}"}, method = RequestMethod.GET)

谁能建议我该怎么做才能绕过这个问题?我以为Spring会把第一个破折号之前的任何东西作为ID,把后面的任何东西作为名称,但事实并非如此。

如果我使用/product/1-name执行GET,它工作得很好。如果path变量包含破折号,这似乎是一种奇怪的行为。

谢谢

共有1个答案

方河
2023-03-14

尝试以下操作:

@RequestMapping(value = {"/product/{id:\\d+}-{name}"}, method = RequestMethod.GET)

可以为路径变量提供regex表达式。您需要在冒号(:)后面给出regex。

参考:https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates-regex

 类似资料:
  • 问题内容: 我有一个非常简单的Spring WebSocket应用程序。但是,我正在尝试使用路径变量进行订阅以及消息映射。 我在下面发布了一个释义的示例。我希望注解会根据订阅者的身份返回给订阅者。即,to 应通知的订阅者,但我没有看到此行为。 值得注意的是,订阅文字作品。这是故意的吗?我是否缺少某些配置?还是这不是它的工作方式? 我对WebSockets或这个Spring项目还不太熟悉,所以在此先

  • 在我的Mac OS应用程序中,我包含了一个Python.framework(v 2.7),所以我将其添加到“链接框架”中作为必需。同样在应用程序中,我正在使用NSTask启动一个Python脚本,如下所示: 当我构建应用程序时,在Python脚本中检查它与一起使用的版本,它返回: [“/用户/...脚本路径.../内容/资源“,”/库/框架/Python.framework/Versions/2.

  • 我有麻烦映射一个嵌套dto字段正确与MapStruct。我有几个DTO: 具有相应的映射器 到目前为止,一切工作都很好,生成的代码自动连接其他需要的映射器来正确地构建DTO。例如生成的仪器映射器实现 现在,当我试图创建一个包含嵌套工具dto的映射器时遇到了麻烦。映射器应使用instrumentMapper正确创建所需的dto。DTO: 映射器: 生成的代码: 现在media mapper得到了很好

  • 主要内容:Servlet 单一映射,Servlet 多重映射客户端通过 URL 地址来访问 Web 服务器中的资源,Servlet 程序若想被外界访问,就必须被映射到一个 URL 地址上。很多时候,该 URL 地址和 Servlet 程序的物理路径(在硬盘上的存储位置)并不一致,因此它被称为虚拟路径。Servlet 与虚拟路径的对应关系就叫做 Servlet 虚拟路径映射。 Servlet 虚拟路径映射可以被分为 2 类: 单一映射 多重映射 下面介绍如何

  • 这让我很困惑。而不是使用一个路径变量值的正确URLhttp://somedomain.com:8080/someWebApp/essays/main/student/25/activity/add“(其中25是路径变量{code>{studentId}}的值)我在我的URL中得到这个值:”http://somedomain.com:8080/someWebApp/essays/main/stude