gpt4 book ai didi

java - Jersey 的路径匹配 "sandbox"或空字符串

转载 作者:搜寻专家 更新时间:2023-11-01 03:54:33 24 4
gpt4 key购买 nike

我在使用 Jersey @Path 时遇到问题,我希望为我的系统实现沙箱环境。基本上通过给定的 url 禁用或启用沙箱模式,如下所示:

沙盒网站

GET: ../MyProject/sandbox/data

常规站点

GET: ../MyProject/data

我想办法去哪里为连接到我的项目根类的路径使用正则表达式。

@Path("/{mode:sandbox|}")
public class JerseyResource{

boolean isSandbox = false;

public JerseyResource(@PathParam("mode") String mode) {
if(mode.equals("sandbox"))
isSandbox = true;
}

@GET
@Path("data")
@Produces(MediaType.TEXT_PLAIN)
public Response data() {
if(isSandbox)
return Response.ok("Sandbox is on").build();
return Response.ok("Sandbox is off").build();
}
}

尝试“GET: ../MyProject/sandbox/data”效果很好,它返回“Sandbox is on”。但是当我执行“GET: ../MyProject/data”时,它只会返回 404 页面未找到。

这里有没有办法在 Jersey 中使用空字符串作为路径 url 的参数,同时采用固定字符串?

最佳答案

尝试使用:

@Path("{mode:(/sandbox)?}")

您还需要将模式比较更改为:

if (mode.endsWith("sandbox"))
isSandbox = true;

和您的数据资源:

@Path("/data")

关于java - Jersey 的路径匹配 "sandbox"或空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12531076/

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