是否可以使用RESTEasy这样的JAX-RS实现来自动构造仅包含@*Param批注(例如@MatrixParam)的对象?我有以下课程代表分页:

public class Pagination {
    @MatrixParam("after")  public String afterKey;
    @MatrixParam("from")   public String fromKey;
    @MatrixParam("to")     public String toKey;
    @MatrixParam("before") public String beforeKey;
    @MatrixParam("count")  public int count;
}


我想将其传递给这样的JAX-RS方法:

@GET
@Produces("text/html")
Response asHtml(Pagination pagination);


我希望RESTEasy会调用默认构造函数,然后注入字段值,但是出现“找不到消息正文阅读器”错误。显然,没有消息正文,并且添加虚拟String构造函数没有帮助。我需要为此创建自己的@Provider吗?如果是这样,是否可以使这种事情变得通用并利用内置的@*Param注入功能?

最佳答案

我知道这有点老了,但是JAX-RS 2.0具有@BeanParam注释可以做到这一点。

@GET
@Produces("text/html")
Response asHtml(@BeanParam Pagination pagination);

07-27 23:59