如何返回groovy映射键
我有一个属性映射被传递到taglib,只想找到其中以“data-”开头的键 例如: 在我的gsp文件中,我使用了这个如何返回groovy映射键,groovy,Groovy,我有一个属性映射被传递到taglib,只想找到其中以“data-”开头的键 例如: 在我的gsp文件中,我使用了这个 <me:myInput name="my-name" id="my-name" data-minlength="5" data-len="1"/> 因此,上面的代码将向dataMap添加所有键。我只想添加前面有“数据-”的那些,而不是其他的 我还想在将“数据-”存储到dataMap之前去掉它。 数据映射结果应该是这样的 dataMap = ['required',
<me:myInput name="my-name" id="my-name" data-minlength="5" data-len="1"/>
因此,上面的代码将向dataMap添加所有键。我只想添加前面有“数据-”的那些,而不是其他的
我还想在将“数据-”存储到dataMap之前去掉它。
数据映射结果应该是这样的
dataMap = ['required', 'len']
任何人都知道我会如何在groovy中实现这一点。有很多方法可以将其切分
matchingKeys = map.keySet().findAll { it.startsWith('data-') }.collect { it[5..-1] }
matchingKeys = map.keySet().findAll { it.startsWith('data-')}*.getAt([5..-1])
matchingKeys = map.keySet().findAll { it.startsWith('data-') }.collect { it - 'data-' }
我希望这能有所帮助。您显示的“数据地图”根本不是地图,而是列表。我正在努力理解你的问题。此外,map的初始化根本不会编译。嗯。对不起,让我试着解释一下。如果你去掉大括号,原始地图代码就会编译。这个问题对我来说很有意义
dataMap
是变量的一个特殊名称,可能是matchingKeys
或类似的名称更有意义,但所写的问题是连贯的。
matchingKeys = map.keySet().findAll { it.startsWith('data-') }.collect { it[5..-1] }
matchingKeys = map.keySet().findAll { it.startsWith('data-')}*.getAt([5..-1])
matchingKeys = map.keySet().findAll { it.startsWith('data-') }.collect { it - 'data-' }