使用JAX-RS覆盖HTTP方法

今天的浏览器(或HTML <5)仅支持HTTP GET和POST,但是为了进行RESTful通信,还需要PUT和DELETE。 如果解决方法不应该是使用Ajax,则需要使用隐藏的表单字段来覆盖实际的HTTP方法。

Rails使用以下技巧:

 

是否有可能与JAX-RS做类似的事情?

不是严格意义上的JAX-RS解决方案,但是Spring 3.0附带了一个HiddenHttpMethodFilter ,它实现了rails的function,默认使用相同的_method参数。

请注意,您不需要使用所有spring来使用此filter,您只需在web.xml配置它并忽略spring的其余部分。

泽西岛也有类似的东西,虽然过滤了一个标题字段。 文档可以在这里找到

引用罗伊菲尔丁的话:

无论如何,有很多RESTful服务除了GET和POST之外什么都不做 。 关键是如何使用这些方法,而不是使用什么方法。 举一个具体的例子,使wiki或多或少RESTful的原因几乎总是取决于它(ab)如何使用GET和会话 – 相比之下,它是否使用PUT或POST来编辑页面。

重点是我的,取自这篇文章http://tech.groups.yahoo.com/group/rest-discuss/message/10746