Как управлять строкой с пробелами, запятой и т. Д. Как PathParam?
Я создал веб-сервисы, которые должны получить строку с пробелами, запятыми, скобками и другими специальными символами. Я хотел бы передать его как PathParam, но я не смог управлять этой строкой.
Строка, которой я хочу управлять, похожа на следующую:
ПОЛИГОН ((9,5 44,6, 12,5 44,6, 12,5 42,0, 9,5 42,0, 9,5 44,6))
Мой метод:
@POST
@Path("/j_update_spi/{step}/{srid}/{polygon:.+}")
public Response updateSPI(@PathParam("step") String step,
@PathParam("srid") String srid,
@PathParam("polygon") String polygon){
...
}
я попытался установить ".+" для параметра многоугольника, но он не работает (я также пытался использовать.*).
Если я вызываю эту услугу, метод не запускается.
1 ответ
Решение
Я решил свою проблему: я изменил PathParam "полигон" и сделал его необязательным. Затем я изменил правила регулярных выражений в многоугольник PathParam.
@POST
@Path("/update_spi/{step}/{srid}{polygon:(/polygon/.+?)?}")
public Response updateSPI(@PathParam("step") String step,
@PathParam("srid") String srid,
@PathParam("polygon") String polygon)
чтобы извлечь строку, которая определяет мой WKT Polygon, я использовал метод split:
if(!polygon.matches(""))
polygon = polygon.split("/")[2];