我在 Jersey @Path 遇到问题,我希望为我的系统实现沙箱环境。基本上通过给定的 url 禁用或启用沙箱模式,如下所示:
沙盒站点
常规站点
我想办法去哪里使用正则表达式连接到我的项目根类的路径。
@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 页面。
这里有没有办法在使用固定字符串的同时使用路径 url 的空字符串作为 Jersey 中的参数?
最佳答案
尝试使用:
@Path("{mode:(/sandbox)?}")
您还需要将模式比较更改为:
if (mode.endsWith("sandbox"))
isSandbox = true;
和您的数据资源:
@Path("/data")