java - 将多个 @QueryParam 映射到一个自定义实体

标签 java jersey jax-rs

例如,我有课

class MyQuery {
   Date start;
   Date end;
   ChronoUnit scale; // ChronoUnit is enum
}

我想声明如下方法:

@Path("/myreport")
public Response generateReport(@EntityFromQuery MyQuery query) {
   // logic to generate.
}

我希望当某些内容点击 url 时将调用此方法

/myreport?start=2015-01-01&end=2015-01-31&scale=WEEKS

我正在使用 Jersey 。有没有任何内部工具可以实现这一目标? 或者我需要编写自己的 MessageBodyReader?

最佳答案

您可以查看您将在 JAX-RS 资源的 Java 方法中使用的 @BeanParam 注释,而不是 @EntityFromQuery

在您的 MyQuery 类中,您只需使用 @QueryParam("start") 等注释 getter。

参见https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/BeanParam.html

HTH。

关于java - 将多个 @QueryParam 映射到一个自定义实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935886/

相关文章:

java - 如何使用带有 Action 监听器的方法?

java - 哪个 jar 文件包含 jersey LoggingFeature 类?

java - 返回 javax.ws.rs.core.Response 的列表,结果为 500

java - 将 JaxRS REST 服务与 WebSocket 集成

java - java.lang.Enum::valueOf 为什么不首先检查空名称?

java对数尺度的线性回归

java - 如何用JAVA模糊图像的一部分

jersey - glassfish jersey 2.9 中这个类 "HttpContext"在哪里?

java - Jersey 2 替代 ServletContextListener

java - 多线程中如何传递上下文