在我的 Jersey 资源中,我有:
@GET
@Path("/{dataType}/{dataSet}")
public Response search(
@PathParam("dataType") String dataType,
@PathParam("dataSet") String dataSet){
...
}
我想使用自己的类而不是字符串:
@GET
@Path("/{dataType}/{dataSet}")
public Response search(
@PathParam("dataType") DataType dataType,
@PathParam("dataSet") DataSet dataSet){
...
}
然而,DataSet 依赖于 DataType(DataSet 在其构造函数中使用 DataType)。有没有办法用 Jersey 做到这一点?
最佳答案
您可以使用 Jersey 的内置转换,使用静态 fromString()
方法(请参阅 Jersey documentation ),或使用自定义提供程序来处理路径段。对于后者,您将需要一个类似这样的类:
public class MyProvider extends PerRequestTypeInjectableProvider<Context, DataType> {
@Context UriInfo uriInfo;
public Injectable<DataType> getInjectable(ComponentContext componentCtx, Context ctx) {
uri.getPathSegments();
...
}
}
关于java - MyClass 在 Jersey 资源方法中作为 @PathParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15413516/