我将以下代码作为我的宁静服务操作。
@GET
@UnitOfWork
@Timed(name = "get-requests")
@Path("/{referenceId}")
public Response get(@Auth @ApiParam(access = "internal") UserPrincipal user,
@ApiParam(name = "id", value = "reference ID", required = true)
@PathParam("referenceId") String id) {
return Response.ok(id).build();
}
但是,我注意到如果传递
m1234;5678
,我只会得到m1234
返回。我尝试了@Path("/{referenceId:.*}")
,但是没有用。我还尝试在该方法的顶部使用
@Encode
来确保未解码该url,然后尝试将%3B
替换为“;”在代码中。但它似乎也不起作用。请注意,我不能使用Spring框架。谢谢。
最佳答案
;
表示矩阵参数。使用 @MatrixParam
获得其值。
另请参见以下问题的答案:URL matrix parameters vs. request parameters
编辑:矩阵参数的键为5678
,值为null
。
有一种方法可以通过使用 PathSegment
而不是String
作为参数的类型来实现所需的目标:
@PathParam("referenceId) PathSegment id
在方法的主体中,您可以使用
String idValue = id.getPath();
得到
m1234;5678
。