我有一个包含 map 的服务:
static Map cargosMap = ['1':'item1','2':'item 2','3':'item 3']
通过服务中的方法返回的值:
static Map getCargos() {
[cargosMap]
}
Controller 这样调用它:
def mform = {
Map cargos = empService.getCargos()
[cargos:cargos]
}
在gsp中,我可以选择:
<g:select name="cg1" from="${cargos}" />
但我得到了异常(exception):
Error 500: Executing action ....caused exception:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object
...
with class 'java.util.ArrayList' to class
'java.util.Map'
有什么线索吗?谢谢
最佳答案
在我看来,就像您将 map 包装在getCargos()
的ArrayList中一样。为什么不只是static getCargos() { cargosMap }
。或者,更好的是,只需将cargosMap
重命名为cargos
,Groovy将为您创建 setter/getter 。