获取 arrayList 中映射的值

Get the values of maps in arrayList

我有一个地图数组列表,它是我在我的控制器中生成并传递给 GSP 页面的!

我想将地图的值作为列表显示在 gsp 中的 g:select 中!

就像arrayList中的每个元素(Map)一样! select选项值应该是地图值和地图键作为optionKey 因为我想在用户选择一个选项时在脚本中使用这个键!

抱歉,如果问题不是很清楚,我有点困惑!

 ArrayList[Map1,Map2,Map3]
    Map1[1,value1]
    Map2[2,value2]
    Map3[3,value3]
    // the values are strings to show in select
   //the respective key of the option value the user has chosen i want it as option key so i can pass it to script

如果我理解正确的话,你有一个地图列表 (ArrayList),你想将每个地图表示为 select,对吗?

您的地图数组列表可能是这样的:

def words_en = ['One':'Apple', 'Two':'Pear', 'Three': 'Strawberry']
def words_it = ['One':'Mela', 'Two':'Pera', 'Three': 'Fragola']
def words_de = ['One':'Apfel', 'Two':'Birne', 'Three': 'Erdbeere']

def myList = [words_en, words_it, words_de]

您可以生成 select 个元素,如下所示:

<g:each var="myMap" in="${myList}" status="i">
    <g:select id="select_${i}" name="select_${i}" optionKey="key" from="${myMap}" optionValue="value" ></g:select> <br/>
</g:each>

编辑: 通过您问题的编辑版本,我了解到您有几张地图,每张地图只包含一个键值对。鉴于您的密钥是唯一的,最好的方法是将所有地图合并为一个,然后简单地使用它来填充 select:

def words_1 = ['One':'Apple']
def words_2 = ['Two':'Pera']
def words_3 = ['Three': 'Erdbeere']

def myList = [words_1, words_2, words_3]

def myMap = [:]
myList1.each{map->
    myMap.putAll(map)
}

并且在视图中:

<g:select id="mySelect" name="mySelect" optionKey="key" from="${myMap}" optionValue="value" ></g:select>