Путь JAX-RS с регулярным выражением count

#jax-rs #eclipse-oxygen

#jax-rs #eclipse-кислород

Вопрос:

Если я использую «{}» для указания условия подсчета в регулярном выражении JAX-RS @Path , eclipse выдает ошибку.

 @Path("/apps/{itemId:\d{10}}")
public Response getItems(...
  

Значение аннотации @Path '/apps/{itemId:d{10}}' недопустимо:
отсутствует ‘{‘ или ‘}’.

Является ли указанный выше путь JAX-RS недопустимым путем? Связано ли это с проблемой проверки eclipse JAX-RS? Если я просто укажу @Path("/apps/{itemId}") , ошибки не будет.

Ответ №1:

Вы не можете использовать фигурные скобки внутри переменной при использовании регулярного выражения в аннотации пути. Используйте вместо этого:

 @Path("/apps/{itemId: \d }")
  

регулярное выражение = *( без скобок / «{» * без скобок «}» ); где без скобок — любой символ, отличный от «{» и «}».

Теоретически вы можете проверить 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]}")
  

Комментарии:

1. странно, что ‘{‘ не принимается. Я бы предпочел принять все цифры и проверить после этого. Спасибо.

2. @ulab они, вероятно, хотели избежать обработки особых случаев с помощью внутренних / множественных фигурных скобок