gpt4 book ai didi

java - 使用正则表达式的可选参数在球​​衣中不起作用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:07:52 25 4
gpt4 key购买 nike

我正在努力满足三种类型的 REST url:

  1. url/detail/3(仅整数)
  2. url/detail/hello(仅字符串)
  3. url/detail/3/1d

对于 URL 1 和 3,我使用 method1,对于 URL 2 使用 method2

问题 1:所有请求类型 1 和 2 仅匹配方法 2。尽管我在方法 1 中指定了整数模式以专门用于具有整数的查询。

问题 2: 要使用可选参数(如 3),我使用的是方法 1,因为 jersey 没有为可选参数提供任何选项。但是 url 类型为 url/detail/3/1d 永远不会像方法 1 中指定的那样匹配。

请帮助我理解我做错了什么,因为我是 Jersey 新手。

@GET
@Path("/detail/{id: \\d+}/{time-period:(/time-period/[^/]+?)?}")

@Produces({ MediaType.APPLICATION_JSON })
@Consumes(MediaType.APPLICATION_JSON)
public JResponse method1(
@Context HttpHeaders headers,
@PathParam("id") String id,
@PathParam("time-period") String timePeriod) {
if(timePeriod == null || timePeriod.equals(""))
{
//code
}
else
//code
}
@GET
@Path("/detail/{name}")
@Produces({ MediaType.APPLICATION_JSON })
@Consumes(MediaType.APPLICATION_JSON)
public JResponse method2(
@Context HttpHeaders headers, @PathParam("name") String name) {
//code
}

最佳答案

也许缺少空格会导致问题。参见 Optional @PathParam in Jax-RS

您可以使用 @DefaultValue("1000") 定义参数的默认值

关于java - 使用正则表达式的可选参数在球​​衣中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18844517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com