gpt4 book ai didi

spring - Scala、@ResponseBody 和 map

转载 作者:行者123 更新时间:2023-12-04 02:23:40 30 4
gpt4 key购买 nike

我正在一个 spring3 项目中试验 Scala,当我返回带有 @ResponseBody 的 map 时,我没有得到我期望的结果。我在 java 中包含了一个工作示例以及我在 scala 中的尝试

// 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 返回带有定义的 pbx & 方法的 json,这是我所期望的。

// This is Scala
@RequestMapping(value= Array("/pbx.admin"),
method=Array(RequestMethod.GET))
@ResponseBody
def getInfo2() = {
Map("pbx" -> "admin", "method" -> "s")
}

虽然 scala 返回了一些不同的东西:

{
empty: false,
traversableAgain: true
}

我需要做什么才能获得我的 map 键/值?

另外,是否有更好的“scala 方式”来做到这一点?谢谢!

最佳答案

Spring MVC 框架不是为 Scala 构建的,它不识别 Scala 的 Map。您必须将 scala.collection.Map 转换为 java.util.Map。您可以使用隐式转换:

import collection.JavaConversions._

def getInfo2(): java.util.Map[String, String] = {
Map("pbx" -> "admin", "method" -> "s")
}

或手动转换:

import collection.JavaConverters._

def getInfo2() = {
Map("pbx" -> "admin", "method" -> "s").asJava
}

注意导入,它们很重要。

我怀疑 Spring 可以被破解以接受 Scala 集合,但显然不是开箱即用的。

关于spring - Scala、@ResponseBody 和 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12113010/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com