我正在Spring3項目中嘗試Scala,並且當我使用@ResponseBody返回地圖時,我得不到我期望的結果。我包括在Java中的工作示例以及我嘗試在斯卡拉斯卡拉,@ResponseBody和地圖
// This is Java
@RequestMapping(value="/pbx.admin", method=RequestMethod.GET)
public @ResponseBody Map<String, Object> getInfo2(HttpServletRequest request, Model model){
Map<String, Object> map = new HashMap<String, Object>();
map.put("pbx", "admin");
map.put("method", "s");
return map;
}
化java返回JSON與定義的PBX &方法,這是我很期待。
// This is Scala
@RequestMapping(value= Array("/pbx.admin"),
method=Array(RequestMethod.GET))
@ResponseBody
def getInfo2() = {
Map("pbx" -> "admin", "method" -> "s")
}
斯卡拉返回不同的東西,但:
{
empty: false,
traversableAgain: true
}
我需要做什麼才能讓我的映射鍵/值呢?
爲了額外的功勞,有沒有更好的'scala方式'來做到這一點?謝謝!
謝謝!這工作很好。 – samspot
因此,當Spring MVC沒有將scala.collection.Map識別爲Map時,它決定應用它用來序列化JavaBean的策略,即找到所有符合JavaBean約定的方法,並將它們用作JSON對象。有兩種方法符合這些標準:'isEmpty'和'isTraversableAgain'。 –
@KenBloom:確切地說,對於偉大的評論+1。當你嘗試返回Scala的'List'時會發生類似的事情。 –