簡體   English   中英

MyClass作為Jersey資源方法中的@PathParam

[英]MyClass as @PathParam in Jersey resource method

在我的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)。 有沒有辦法用澤西島做到這一點?

您可以通過靜態fromString()方法使用Jersey的內置轉換(請參見Jersey文檔 ),也可以使用自定義提供程序來處理路徑段。 對於后者,您將需要一個類似以下的類:

public class MyProvider extends PerRequestTypeInjectableProvider<Context, DataType> {
    @Context UriInfo uriInfo;

    public Injectable<DataType> getInjectable(ComponentContext componentCtx, Context ctx) {
        uri.getPathSegments();
        ...
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM