簡體   English   中英

jersey-在資源的URI中使用自定義類

[英]jersey - use custom class in URI of resource

我有一個自定義數據類:

public static class Data {
    ...
}

我想在Jersey的資源的URI中使用此類。 例如:

@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ResourceTest {
    @GET
    @Path("/data-{data}")
    public Response get(@PathParam("data") final Data data) {
        ...
    }
}

這可能嗎? 我想我需要注入某種轉換器,它將Data的文本表示形式轉換為Data實例。 我一直在尋找文檔,但是到目前為止還沒有找到有用的東西。

當然,我可以將其更改為:

@Path("test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ResourceTest {
    @GET
    @Path("/data-{data}")
    public Response get(@PathParam("data") final String input) {
        final Data data = convert(input);
        ...
    }
}

但是我寧願在其他地方/自動地進行轉換。 資源。

文檔

帶注釋的參數,字段或屬性的類型必須為:

  • ...
  • 有一個接受單個String參數的構造函數。
  • 有一個名為valueOf或fromString的靜態方法,該方法接受單個String參數(例如,請參閱Integer.valueOf(String))。
  • 已注冊ParamConverterProvider JAX-RS擴展SPI的實現,該擴展返回一個ParamConverter實例,該實例能夠對該類型進行“從字符串”轉換。

因此,如果提供構造函數Data(String) ,則應該沒問題。

暫無
暫無

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

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