2014-07-11 62 views
0

我希望堅持API最佳實踐,因此希望使用相同的URL來獲取和更新資源。我的GET實施是這樣的:如何在Spring中使用GET和POST的相同URL

@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實現Web服務時,遇到了類似的問題,但忘記了當時我做錯了什麼。 任何指針都會很棒。

+1

我輸入了錯誤的URL:/ –

+1

你想要什麼'RequestMethod.PUT'或'RequestMethod.POST'? –

+0

分享您嘗試點擊的網址,需要了解該通話是否正確。 –

回答

1

正如M.Deinum所述;這與Spring MVC有關。我曾經面臨這樣一種需要和我所做的是從.jsp文件,我添加了一個隱藏字段,改變方法名稱,如下圖所示:

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

而這正是解決我的問題。欲瞭解更多信息,請參考Spring in Practice by Willie Wheeler with Joshua White我讀過這本書,他們很多都使用這種解決方案。

相關問題