我有几个变量@PathParam
,我想把它们放在一个Bean中,并把它们放在一个Bean中。
public void show( @PathParam("personId"> String personId,
@PathParam("addressId") String addressId
@Context HttpRequest request) {
// Code
}
现在我想把所有的参数放在一个带有@Form
参数的Bean/VO中。
class RData {
private String personId;
private String addressId;
private InputStream requestBody;
@PathParam("personId")
public void setPersonId(String personId) {
this.personId = personId;
}
@PathParam("addressId")
public void setAddressId(String addressId) {
this.addressId = addressId;
}
// NOW HERE I NEED TO BIND HttpRequest Context object to request object in my VO.
// That is @Context param in the original method.
}
我的方法将更改为:
public void show( @Form RData rData) {
// Code
}
我上面的VO类包含了我需要做的事情,所以我需要把@Context HttpRequest request
Map到我的VO中的HttpRequest
示例变量。
怎么做呢?因为它没有@PathParam
这样的属性名。
2条答案
按热度按时间inkz8wg91#
您可以将
@Context
值注入到属性中,就像form、path和header参数一样。资源方法示例:
表单类示例:
网址:
输出:
yx2lnoni2#
我想我会为那些使用纯JAX-RS而不是RestEasy的人提供一个答案。面对同样的问题,并且惊讶于JAX-RS没有对http Form绑定到Java对象的开箱即用支持,我创建了一个Java API来将Java对象编组/解编组到表单,然后使用它来创建JAX-RS消息体读取器和写入器。
https://github.com/exabrial/form-binding