【问题标题】:MissingPropertyException: No such property: * for class: java.util.LinkedHashMap$EntryMissingPropertyException:没有这样的属性:* 对于类:java.util.LinkedHashMap$Entry
【发布时间】:2015-08-18 08:48:02
【问题描述】:

可以说我有这个:

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代码中提供的“选择”行 而我的控制器中的 428 是 return render() 行

myValue 实际上是一个地图值!

我正在遍历arrayList,第一个地图是map1,看起来像这样

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

【问题讨论】:

  • 什么是myValue?你在哪里使用过myValue
  • 请提供更多详细信息或代码行以进一步详细说明您的问题
  • myValue 应该是选择的 optionValue!它实际上是 key1 的映射值
  • 您的地图[123] 有语法错误。请确保问题的简化代码仍然有效
  • 提供的代码示例无效且与提供的异常无关。在不了解真实情况的情况下,不可能提出任何建议

标签: grails groovy


【解决方案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

希望对你有帮助。

【讨论】:

  • 通过渲染页面,我想将此选择的值设置为某个值,即 map.get('key1')!那我该怎么做呢? “someList”实际上是地图的地图,而 myValue 也是那里的键值!感谢您的帮助,抱歉让这件事变得复杂
猜你喜欢
  • 2019-03-16
  • 2022-12-18
  • 2014-08-15
  • 2019-02-10
  • 1970-01-01
  • 2016-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多