2012-10-12 35 views
5

控制器簽名(我曾嘗試爲requestbody以及):後JSON了Spring MVC控制器

@RequestMapping(value = "/Lame", method = RequestMethod.POST) 
public 
@ResponseBody 
boolean getLame(@RequestParam String strToMatchA, @RequestParam String strToMatchB) {} 

這是我的JSON:

{ 
"strToMatchA": "EN", 
"strToMatchB": "lon" 
} 

不工作時,我收到錯誤:

org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'strToMatchA' is not present 

從方法簽名中刪除第一個參數然後使其工作(方法被調用正確),我該怎麼做d oing?

java.io.IOException: Stream closed 
+0

您是否啓用了調試進行編譯?否則,您的參數名稱將不可用。 –

+0

@DavidGrant RequestParam將採用方法簽名中定義的參數名稱。但我已經嘗試過,同時手動指定名稱 – NimChimpsky

+1

您使用哪個庫進行對象映射?是傑克遜還是別的?它在類路徑上嗎?另外,RESTFul控制器的請求方法應該基本上是'GET'而不是'POST'。 – Lion

回答

3

您的JSON是好的,但不是控制器簽名:

當我改變方法參數與@RequestBody我碰到下面的錯誤進行註釋。 使用與json匹配的setter創建一個類。 使用它作爲參數而不是字符串。 用requestbody註解。它應該工作。

+2

是否有其他方式?我假設spring coul dhandle multple request paramters? – NimChimpsky

+0

它可以但它不是一個請求參數你有什麼是請求的主體 – eugen

+0

我已經嘗試過這兩個annoations。兩者都沒有工作。我如何使用兩個方法參數來做到這一點...? – NimChimpsky

相關問題