如何在Spring WS中使用相同的URL进行GET和POST

时间:2014-07-11 07:18:28

标签: java spring web-services

我希望坚持API最佳做法,因此希望使用相同的URL来获取和更新资源。我的GET实现就像:

@RequestMapping(value = "/userconfig/{userName}", 
     method = (RequestMethod.GET))
@ResponseBody
public String userPreferenceService(@PathVariable String userName) {

这很好用。 当我尝试实现更新方法时:

@RequestMapping(value = "/userconfig/{userName}", 
    method = RequestMethod.PUT)
public String userPreferenceUpdateService(@PathVariable String userName,
        @RequestBody UserPreference userPreference) {

我在这两种方法上得到了404。我记得几年前当我使用Spring进行网络服务实现时遇到类似的问题,但忘记了我当时做错了什么。 任何指针都会很棒。

1 个答案:

答案 0 :(得分:1)

正如M. Deinum所说;这与Spring MVC有关。我曾经遇到过这样的需求,而我所做的是来自.jsp文件,我添加了一个隐藏字段来更改方法名称,如下所示:

<form id="deleteForm" action="your/url/" method="post">
  <input type="hidden" name="_method" value="PUT" />
</form>

这就解决了我的问题。有关这方面的更多信息,请参阅 Willin Wheeler 中的 Spring in Practice Joshua White 我读了这本书,他们使用了这种解决方案很多。