1

我创建了一个需要获取包含空格、逗号、括号和其他特殊字符的字符串的 Web 服务。我想将它作为 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){
...
}

我尝试为多边形参数设置“.+”,但它不起作用(我也尝试使用 .*)。

如果我调用此服务,则该方法不会启动。

4

1 回答 1

0

我解决了我的问题:我更改了 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 多边形的字符串,我使用了split方法:

if(!polygon.matches(""))
     polygon = polygon.split("/")[2];
于 2018-03-21T15:40:44.617 回答