是否有可能让Jersey采用一系列HTTP标头并将它们编组为POJO,就像使用POST参数所做的一样?
最佳答案
如果要以@HeaderParam
的身份访问特定的String
,请使用@Juned Ahsan或@DJ Spiess提供的答案。如果要将它们注入POJO,建议在2.x中使用Jersey的@BeanParam
。
例如:
@Path("/foo")
public class FooResource {
@GET
@Path("/bar")
public void bar(@BeanParam MyBean myBean) {
// Do something
}
}
public class MyBean {
private String uaCompatible;
public MyBean(@HeaderParam("X-UA-Compatible") String uaCompatible) {
this.uaCompatible = uaCompatible;
}
public String getUacompatible() {
return this.uaCompatible;
}
}
可以将
@BeanParam
替换为Jersey 1.x(> = 1.4)的@InjectParam
或1.x之前的1.4中的@Inject
。如果您正在使用依赖注入框架(例如Spring),也可以使用javax- @Inject
。