2015-08-18 41 views
0

可以说,我有这样的:

ArrayList maps = [ ] 
Map map = [:] 

我的控制器,我这样做:

List.each { 
     myList -> map = [key1:value1,key2:value2,key3:value3] 
     maps << map 
    } 
return render (template: "myTemplate" , model: [arrayList:maps]) 

我传递这个arrayList映射到我的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代码 和428提供行返回渲染()行

myvalue的实际上是一个地图值!

我循环通过ArrayList和第一张地图是MAP1看起来像这样

[key1: myValue , key2: otherValue , key3 : someOtherValue] 
+1

什么是myValue?你在哪里使用'myValue'? – Abs

+1

请提供更多详细信息或代码行以进一步提供有关您的问题的详细信息 – Fritz

+0

myValue应该是select!的选项值!它实际上是key1的地图值 – Mich

回答

1

在你的GSP您有以下几点:

<g:select from="${someList}" optionValue="${map.get('key1')}" optionKey="key"/> 

这将是问题。您分配给optionValue的值应该是someList中元素的属性名称。该属性将在生成列表中各个元素的“值”时使用。在你的情况下,它看起来像map.get('key1')评估为myValue,因此select标记将尝试并检索列表中每个元素的myValue属性的值。

查看http://grails.github.io/grails-doc/3.0.4/ref/Tags/select.html了解更多详情。

我希望有帮助。

+0

通过渲染页面我想设置这个选择的值为一个特定的值,这是map.get('key1')!那我该怎么做呢?“someList”实际上是地图的地图,而myValue也是一个关键值。感谢您的帮助,并感到抱歉让这个问题变得复杂 – Mich

相关问题