让我说我有这个:
ArrayList maps = [ ]
Map map = [:]
我的控制器我做到了:
List.each {
myList -> map = [key1:value1,key2:value2,key3:value3]
maps << map
}
return render ( template: "myTemplate" , model: [arrayList:maps])
我将这个数组地图列表传递给我的GSP并迭代它,所以我将每个地图的值分配给元素。
我在我的gsp中做了类似的事情。
<g:each in="${arrayList}" var="map">
<g:select from="${someList}" optionValue="${map.get('key1')}" optionKey="key"/>
<input type="text" id="textBox" value="${map.get('key2')}"/>
</g:each>
我收到此错误!其中说:
ERROR errors.GrailsExceptionResolver - MissingPropertyException occurred when processing request: [POST] .....
No such property: myValue for class: java.util.LinkedHashMap$Entry. Stacktrace follows:
groovy.lang.MissingPropertyException: No such property: myValue for class: java.util.LinkedHashMap$Entry
at Users_**_Projects_**_grails_app_views__myGsp_gsp.run(_myGsp.gsp:6)
at org.grails.plugins.web.rest.api.ControllersRestApi.render(ControllersRestApi.groovy:53)
at se.su.it.vfu.ConfigController$$EPLhPshc.myFunction(myController.groovy:428)
myGsp.gsp:6:实际上是gsp代码中提供的“select”行 我的控制器中的428是返回render()行
myValue实际上是一个地图值!
我正在遍历arrayList,第一个map是map1,就像这样
[key1: myValue , key2: otherValue , key3 : someOtherValue]
答案 0 :(得分:1)
您的GSP中包含以下内容:
<g:select from="${someList}" optionValue="${map.get('key1')}" optionKey="key"/>
这将成为问题所在。您分配给optionValue
的值应该是someList
中元素的属性名称。生成&#34;值时将使用该属性&#34;列表中的各个元素。在您的情况下,map.get('key1')
似乎评估为myValue
,因此select
标记将尝试为列表中的每个元素检索myValue
属性的值。 / p>
有关详细信息,请参阅http://grails.github.io/grails-doc/3.0.4/ref/Tags/select.html。
我希望有所帮助。