2010-10-21 144 views
2

在下面的方法:新澤西Web服務多種格式

@GET 

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML, MediaType.TEXT_PLAIN}) 

@Path("{id}") 

public String getMessage(@PathParam("username") String username, 

    @PathParam("id") int id, 
    @QueryParam("format") String format) { 

return "test"; 
} 

我怎麼在由格式的查詢參數確定具體的格式返回數據。

回答

1

I found this suggested solution

澤西支持使用 在路徑的末端的後綴基於URI的conneg。

您可以在web.xml中後綴的 映射聲明媒體類型:
https://jersey.dev.java.net/nonav/apidocs/latest/jersey/com/sun/jersey/api/core/ResourceConfig.html#PROPERTY_MEDIA_TYPE_MAPPINGS

,如果你想使用 查詢參數做同樣的,你可以寫一個
新澤西請求過濾器確實 類似的事情的後綴過濾器:

http://fisheye4.atlassian.com/browse/jersey/trunk/jersey/jersey-server/src/main/java/com/sun/jersey/api/container/filter/UriConnegFilter.java?r=HEAD

其修改接受HEA der基於 上的後綴值。