将其作为模型传递以在 grails 中查看时的映射问题

Posted

技术标签:

【中文标题】将其作为模型传递以在 grails 中查看时的映射问题【英文标题】:Map problem when passing it as model to view in grails 【发布时间】:2010-03-27 00:13:12 【问题描述】:

在控制器中,我填充了一个以字符串为键、以列表为值的映射;在 gsp 中,我尝试像这样展示它们:

<g:each in="$sector" var="entry" >
  <br/>$entry.key<br/>
  <g:each in="$entry.value" var="item" >
    $item.name<br/>
  </g:each>
</g:each>

问题是项目被认为是字符串,所以我得到了异常

Error 500: Error evaluating expression [item.name] on line [11]:
groovy.lang.MissingPropertyException: No such property: name for class: 
java.lang.String

除了在 gsp 中明确地查找项目之外,关于如何修复它的任何提示?

【问题讨论】:

你确定你的代码是正确的吗?抛出的异常是“No such property: nombre for class..”。什么是名词?如需更多信息以帮助您,您能否打印出 $item 的结果? 对不起,我混合了版本,但错误是一样的 @fabien7474: nombre 是西班牙语的名字 这样做,打印出扇区,打印出项目……看起来扇区构建时,并不是你想象的那样。 【参考方案1】:

我做了对我来说很好用的 poc

class Item   
     String name 

List items = [new Item(name:"laptop" , 新项目(名称:“鼠标”)]

地图扇区=[:]

sector.manager = 项目

sector.manager.eachitem->

println item.name

即使它不起作用,尝试将地图扇区声明为

Map>扇区=[:]

【讨论】:

感谢您的回答,但问题发生在带有 gsp 标签的视图中,而不是在控制器中。

以上是关于将其作为模型传递以在 grails 中查看时的映射问题的主要内容,如果未能解决你的问题,请参考以下文章

传递多个数组以在 codeigniter 中查看

DDD应用服务领域模型查看模型映射

尝试传递自定义 oracle 类型对象映射时的名称模式无效

grails 索引页面的最佳实践

使用 Grails 和 Spring Security 作为后端时的 Angular 前端身份验证

flash 对象映射如何在 grails 框架中工作