我一直在编写一个原型Jersey(JAX-RS)应用程序,并希望尝试使用post-after-POST方法处理application / x-www-form-urlencoded帖子。
我想在成功时重定向到应用程序root上托管的html页面,但是我似乎无法逃脱 Jersey的 servlet root。
以下是允许您创建新用户的资源示例:
我想要的URI:/jersey-test/user.html
我得到的URI:/ jersey-test / r /user.html
@POST
@Consumes({MediaType.APPLICATION_FORM_URLENCODED})
public Response putUser(@Context UriInfo uriInfo,
MultivaluedMap<String, String> formParams) {
// snip... do work and insert user here...
URI uri = uriInfo.getBaseUriBuilder().path("user.html").build();
return Response.seeOther(uri).build();
}
来自我的web.xml的相关摘录:
<web-app ...>
<display-name>jersey-test</display-name>
...
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
...
</servlet>
...
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/r/*</url-pattern>
</servlet-mapping>
</web-app>
答案 0 :(得分:8)
分配如下的路径:
URI uri = uriInfo.getBaseUriBuilder().path("../user.html").build();