2010-10-21 77 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基于 上的后缀值。