【发布时间】:2010-05-31 21:02:03
【问题描述】:
我在 REST 项目中使用 Jersey,我需要使用 正则表达式。
挖掘它很简单:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
但是,这样做,如果我传递 1 个参数,该方法仅获取请求,例如:
GET: .../resources/firstSubResource
如果我使用超过 1 个参数,则方法不获取请求,例如:
GET: .../resources/firstSubResource/seccondSubResource/thirdSubResource
如果我的@Path 中包含变量 或文本值,我只能使用正则表达式,例如:
@Path("{SubResource1}/{subResources:.*}")
或者
@Path("/hardCodeString/{subResources:.*}")
今天我可以使用这个变量的解决方案来运行,但从我的角度来看还不行。
我的 web.xml
(...)
<servlet>
<servlet-name>Jersey Spring Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.myproject.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Spring Web Application</servlet-name>
<url-pattern>/1.0/*</url-pattern>
</servlet-mapping>
(...)
问题
- 有人从事过相关工作吗?
- 我做错了什么?
- 我认为这可能是一个错误,当使用多个 @Path、一个在类中和另一个在方法中时。
- 感谢任何提示!
问候
【问题讨论】:
-
您能否发布更多信息,包括:
web.xml中的和 标记、示例 URL、与每个示例 URL 匹配的 @Path 注释以及路径的所有值泽西收到的参数? (编辑您的问题以添加此信息。) -
@Daniel - 感谢您的回答,我在问题中添加了更多信息。问候!