使用正斜杠将请求重定向到匹配的路由

时间:2016-01-25 21:56:04

标签: jersey jax-rs

documentation hints at a功能,将没有尾部斜线的路由请求重定向到匹配的控制器,并使用其他匹配的路径。这似乎有效,所以

GET /something

正确路由到端点

@Path("/something/")
public Response doSomething() {
    ...
}

通常情况下这很好,这是我期望的行为,但在某些情况下,我希望以不同的方式对待这两种情况。

例如,我有一个服务于动态html的端点,它包含了它的静态资源的相对路径。当请求没有尾随斜杠时,资源404。

我知道我可以在html中切换到绝对路径,但是我想了解是否有办法控制Jax路由来执行此操作。

我想这样做:

@Path("/something")
public Response doSomething() {
    ...
}


@Path("/something/")
public Response doSomethingSlightlyDifferent() {
    ...
}

但是这给了我一个ModelValidationException说2条路线是等价的,这是正确的。

1 个答案:

答案 0 :(得分:0)

你在哪里认为球衣允许单独处理以“/”结尾的路径与不以它结尾的路径?

From the docs:

  

同样,默认情况下,@ Path值可能会也可能不会以'/'结尾,但没有区别,因此请求以'/'结尾或不以'/'结尾的网址都将匹配。