简体   繁体   English

JAVA Rest两个日期Path参数或Query参数

[英]JAVA Rest two dates Path param or Query param

I have a rest service which validates date now i need to modify it to take two dates, but i don't know if to use @PathParam or @QueryParam and if i can insert it between two @PathParam 我有一个可以验证日期的休息服务,现在我需要将其修改为两个日期,但是我不知道是否要使用@PathParam@QueryParam以及是否可以在两个@PathParam之间插入@PathParam
This it the original code : 这是原始代码:

 @Path("isDateValid/{date}/{itemId}")
    public boolean isDateValid(@PathParam("date") Date date, @PathParam("itemId") Long itemId) {

Should i do like this : 我应该这样做吗:

 @Path("isDateValid/{startDate}/{endDate}/{itemId}")
    public boolean isDateValid(@PathParam("startDate") Date startDate, @PathParam("endDate") Date endDate, @PathParam("itemId") Long itemId) {

Date Class is cannot serialize using JAX-RS as it is not a simple type. 日期类不是简单类型,因此无法使用JAX-RS进行序列化。 You need to develop the same using MessageBodyReader/Writer . 您需要使用MessageBodyReader / Writer进行开发。 Click Here for more 点击这里更多

Or you can use some third party stuff to configure to get it done. 或者,您可以使用一些第三方的东西进行配置以完成它。

Click Here for more 点击这里更多

If you do not want to use third party stuff, I suggest you define a format for the text-date. 如果您不想使用第三方资料,建议您为文本日期定义一种格式。 You can use the SimpleDateFormat class (avoid the space). 您可以使用SimpleDateFormat类(避免使用空格)。 The you can use the following code. 您可以使用以下代码。

@Path("isDateValid/{itemId}")
public boolean isDateValid(@PathParam("itemId") Long itemId) {
    @QueryParam("begin") String sBegin; 
    @QueryParam("end") String sEnd;

    SimpleDateFormat sdf = new SimpleDateFormat(/* Your patern, for example "yyMMddHHmmssZ"*/);

    Date dBegin = sdf.parse(sBegin);
    Date dEnd = sdf.parse(sEnd);

/*
...
*/
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM