将多个@QueryParam 映射到一个自定义实体
Map several @QueryParam to one custom entity
比如我有class
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
我正在使用泽西岛。是否有任何内部工具可以实现这一目标?
或者我需要编写自己的 MessageBodyReader?
球衣开箱即用(您可能想先查看一些教程..)。将传入请求的所有 GET 参数作为字符串接受并在稍后转换它们可能更容易:
@GET
@Path("/myreport")
@Produces(MediaType.{whatever you want to return})
public Response generateReport(@QueryParam("start") String start, @QueryParam ("end") String end, @QueryParam ("scale") String scale) {
// convert from string to date and from string to chroneUnit
//do some logic..
}
您可以在 JAX-RS 资源的 Java 方法中查看 @BeanParam
注释,而不是 @EntityFromQuery
。
在你的 MyQuery
class 中,你只需要用 @QueryParam("start")
等注释 getters
见https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/BeanParam.html
HTH.
比如我有class
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
我正在使用泽西岛。是否有任何内部工具可以实现这一目标? 或者我需要编写自己的 MessageBodyReader?
球衣开箱即用(您可能想先查看一些教程..)。将传入请求的所有 GET 参数作为字符串接受并在稍后转换它们可能更容易:
@GET
@Path("/myreport")
@Produces(MediaType.{whatever you want to return})
public Response generateReport(@QueryParam("start") String start, @QueryParam ("end") String end, @QueryParam ("scale") String scale) {
// convert from string to date and from string to chroneUnit
//do some logic..
}
您可以在 JAX-RS 资源的 Java 方法中查看 @BeanParam
注释,而不是 @EntityFromQuery
。
在你的 MyQuery
class 中,你只需要用 @QueryParam("start")
等注释 getters
见https://jax-rs-spec.java.net/nonav/2.0-SNAPSHOT/apidocs/javax/ws/rs/BeanParam.html
HTH.