如何使用空格,逗号等作为PathParam管理字符串?

时间:2017-12-13 09:54:17

标签: jersey jax-rs path-parameter

我创建了一个Web服务,需要获取带有空格,逗号,括号和其他特殊字符的字符串。我希望将其作为PathParam传递,但我无法管理此字符串。

我想管理的字符串类似于以下内容:

  

POLYGON((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){
...
}

我试图设置"。+"对于polygon参数,但它不起作用(我也尝试使用。*)。

如果我打电话给这项服务,方法就不会开始。

1 个答案:

答案 0 :(得分:0)

我解决了我的问题:我更改了PathParam“polygon”并使其成为可选项。然后我将正则表达式规则更改为多边形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];