例如,我有课
class MyQuery {
Date start;
Date end;
ChronoUnit scale; // ChronoUnit is enum
}
我想声明方法如:
@Path("/myreport")
public Response generateReport(@EntityFromQuery MyQuery query) {
// logic to generate.
}
我想要在遇到网址时调用此方法
?/ myreport开始= 2015年1月1日和安培;端= 2015年1月31日&安培;比例= WEEKS
我使用泽西岛。有没有内部工具来实现这一目标? 或者我需要编写自己的MessageBodyReader?
答案 0 :(得分:2)
您可以在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。
答案 1 :(得分:0)
开箱即用(你可能想先查看一些教程......)。您可能更容易接受传入请求的所有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..
}