2012-08-03 50 views
3

我一直在使用@Path("{id: [a-zA-Z0-9-]*}")來捕獲URL的預期標識符。JAX-RS @Path可以指定長度要求嗎?

工作正常,但我想確保這些標識符長度在1-64個字符之間。

根據Java Reg Exp文檔,像@Path("{id: [a-zA-Z0-9-]{1,64}}")應該可以工作,但是我會遇到HTTP 405

我錯過了什麼魔術?我真的想要應用簡單的請求驗證。

更新:刪除結尾連字符會導致事情發生。注知道爲什麼還...

+0

我已經嘗試使用球衣1.12的例子,它按預期工作。如果「id」不在限制範圍內(1,64),路徑不匹配,那麼我得到404。 – inancsevinc 2012-08-03 13:48:15

回答

1

最終找到了解決辦法:

@Path("{id: [a-zA-Z0-9\\-]{1,64}}") 

最終連字符轉義需要。

+1

爲什麼我喜歡Intellij IDEA(社區版)的原因之一是它檢測到這些類型的正則表達式錯誤。 – Augusto 2012-08-03 15:46:05

+0

@Augusto是的,但使用Java EE意味着Intellij對我們來說相當昂貴:( – jmkgreen 2012-08-06 10:29:46

相關問題