MissingPropertyException:没有这样的属性:* for class:java.util.LinkedHashMap $ Entry

时间:2015-08-18 08:48:02

标签: grails groovy

让我说我有这个:

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] 

1 个答案:

答案 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

我希望有所帮助。