为了账号安全,请及时绑定邮箱和手机立即绑定

@Path regexp 中的 Jaxrs (RESTEasy) 多个子资源

@Path regexp 中的 Jaxrs (RESTEasy) 多个子资源

温温酱 2022-07-27 21:53:15
我在使用正则表达式 @Path 参数时遇到了一点问题。我正在尝试匹配路径 a 或 b。我一直在尝试使用:@Path("/{a: path\\/to\\/resource|resource}")所以要么http://localhost:1111/path/to/resource或者http://localhost:1111/resource都将执行相同的方法。当我使用两个正斜杠时,我的问题似乎出现了。我只能使用http://localhost:1111/resource但不是另一个。但是在做的时候:@Path("/{a: path\\/resource|resource}")它按预期工作,我可以使用http://localhost:1111/路径/资源或者http://localhost:1111/resource。我尝试进行否定的前瞻来排除查询的第一部分,只返回公共属性(资源):@Path("/{a: (?!path\\/to\\/)resource}")但这也不起作用。它和我第一次实现的效果一样,我只能访问/resource。我也试过:@Path("/{a: (path\\/to)?}{b: (\\/)?}resource")哪个按预期工作,但如果我查询也可以工作http://localhost:1111/path/toresource或者http://localhost:1111//资源因此,当我只想有两个时创建 4 个条目 URL。我是否缺少与正斜杠有关的内容,为什么我的正则表达式模式不能包含多个正斜杠?
查看完整描述

1 回答

?
幕布斯7119047

TA贡献1794条经验 获得超8个赞

我想我可能已经找到了问题的原因。

我有几个使用相同 URL(/path/to/resource)的不同 HTTP 方法(GET、PUT、DELETE)的其他路径。我怀疑它在执行正则表达式之前尝试将路径/到/资源与其中一种方法进行匹配。我对此怀疑的原因是,当我将 POST 方法重命名为:

@Path("/{a: (notPath\\/to\\/)?}resource"}

它按预期工作。我能够得到双方的回应

本地主机:1111/notPath/to/resource

本地主机:1111/资源


查看完整回答
反对 回复 2022-07-27
  • 1 回答
  • 0 关注
  • 148 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号