我在使用正則表達式 @Path 參數(shù)時遇到了一點問題。我正在嘗試匹配路徑 a 或 b。我一直在嘗試使用:@Path("/{a: path\\/to\\/resource|resource}")所以要么http://localhost:1111/path/to/resource或者http://localhost:1111/resource都將執(zhí)行相同的方法。當我使用兩個正斜杠時,我的問題似乎出現(xiàn)了。我只能使用http://localhost:1111/resource但不是另一個。但是在做的時候:@Path("/{a: path\\/resource|resource}")它按預期工作,我可以使用http://localhost:1111/路徑/資源或者http://localhost:1111/resource。我嘗試進行否定的前瞻來排除查詢的第一部分,只返回公共屬性(資源):@Path("/{a: (?!path\\/to\\/)resource}")但這也不起作用。它和我第一次實現(xiàn)的效果一樣,我只能訪問/resource。我也試過:@Path("/{a: (path\\/to)?}{b: (\\/)?}resource")哪個按預期工作,但如果我查詢也可以工作http://localhost:1111/path/toresource或者http://localhost:1111//資源因此,當我只想有兩個時創(chuàng)建 4 個條目 URL。我是否缺少與正斜杠有關的內(nèi)容,為什么我的正則表達式模式不能包含多個正斜杠?
1 回答

幕布斯7119047
TA貢獻1794條經(jīng)驗 獲得超8個贊
我想我可能已經(jīng)找到了問題的原因。
我有幾個使用相同 URL(/path/to/resource)的不同 HTTP 方法(GET、PUT、DELETE)的其他路徑。我懷疑它在執(zhí)行正則表達式之前嘗試將路徑/到/資源與其中一種方法進行匹配。我對此懷疑的原因是,當我將 POST 方法重命名為:
@Path("/{a: (notPath\\/to\\/)?}resource"}
它按預期工作。我能夠得到雙方的回應
本地主機:1111/notPath/to/resource
和
本地主機:1111/資源
添加回答
舉報
0/150
提交
取消