2017-02-19 19 views
0

У меня есть этот путь правило с Джерси аннотацией:JAX-RS/Джерси правило регулярных выражений пути сталкиваясь

@GET 
@Path("{format:([^/]+?)?}") 

что вышлет с www.site.com/it или www.site.com, и это идеально подходит для меня. Теперь я хочу добавить новое правило, которое соответствует: www.site.com/it/search или www.site.com/search. Я попытался это:

@GET 
@Path("{format:([^/]+?)?}/search") 

, но на самом деле первое правило уволили, как я могу сделать, чтобы исключить из первой некоторые строки (например, поиск и другие один) или в противоположных решений, ограничить дополнительный путь для некоторых конкретных значений, как это, еп, фр, и т.д .... Спасибо

+0

Является ли 'www.site.com/search' вашим параметром пути? –

+0

@ CássioMazzochiMolin/search - мой параметр пути –

ответ

0

Try для первой конечной точки:

@GET 
@Path("/{format: \\w*}") 

И это для второй конечной точки:

@GET 
@Path("/{format: \\w*}/search") 
+0

испорчен статическим контентом, изображения не загружены, css загружены, должны столкнуться с другими путями. –

+0

Вы также можете добавить язык как параметр запроса. Или вы можете ограничить языковое регулярное выражение до 2-3 символов. – hya

+0

Я хотел бы избежать решений в качестве параметра запроса. Могу ли я мягко спросить у вас решение с регулярным выражением, ограниченным 2 символами? Я пробовал без особого успеха! Спасибо! –

0

В конце концов, я нашел это решение: Optional path segment in Jersey JAX-RS

Действительно нужно просто добавить новый URL-шаблон для вашего сервлета-отображения. Так что просто нужно на web.xml:

<servlet-mapping> 
    <servlet-name>JAX-RS Servlet</servlet-name> 
    <url-pattern>/api/*</url-pattern> 
    <url-pattern>/v1/api/*</url-pattern> 
</servlet-mapping> 
Смежные вопросы