Если я использую «{}», чтобы указать условие подсчета в регулярном выражении JAX-RS @Path
, eclipse выдает ошибку.
@Path("/apps/{itemId:\\d{10}}")
public Response getItems(...
The @Path annotation value
'/apps/{itemId:\d{10}}'
is invalid: missing '{' or '}'.
Указанный выше путь JAX-RS не является допустимым путем? Это связано с проблемой валидатора eclipse JAX-RS? Если я просто укажу @Path("/apps/{itemId}")
, ошибки не будет.
Вы не можете использовать фигурные скобки внутри переменной, когда использование регулярного выражения в аннотации пути. Вместо этого используйте:
@Path("/apps/{itemId: \\d+}")
regex = *( nonbrace / "{" *nonbrace "}" ) ; where nonbrace is any char other than "{" and "}"
Теоретически вы можете проверить 10 цифр, как хотите, используя несколько [0-9]
:
@Path("/apps/{itemId: [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]}")
@ulab они, вероятно, хотели избежать обработки особых случаев с внутренними/множественными фигурными скобками
странно, что '{' не принимается. Я бы предпочел принять все цифры и подтвердить после этого. Спасибо.