@Path和正则表达式(泽西岛/REST)
我在REST项目中使用泽西岛,我需要使用正则表达式。
挖掘它很简单,就像:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
但是,这样做,只有当我传递1个参数时,该方法才会获得请求,例如:
GET: .../resources/firstSubResource
如果我使用超过1个参数,则该方法未收到请求,例如:
GET: .../resources/firstSubResource/seccondSubResource/threeSubResource
我只能在@Path包含变量或文本值时使用正则表达式,例如:
@Path("{SubResource1}/{subResources:.*}")
或
@Path("/hardCodeString/{subResources:.*}")
今天,我可以运行这个变量解决方案,但对于我的观点来说不是ok。
我的网站.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,一个在类中,另一个在方法中。
- 任何提示都是值得赞赏的!
问候