如何返回groovy映射键

如何返回groovy映射键,groovy,Groovy,我有一个属性映射被传递到taglib,只想找到其中以“data-”开头的键 例如: 在我的gsp文件中,我使用了这个 <me:myInput name="my-name" id="my-name" data-minlength="5" data-len="1"/> 因此,上面的代码将向dataMap添加所有键。我只想添加前面有“数据-”的那些,而不是其他的 我还想在将“数据-”存储到dataMap之前去掉它。 数据映射结果应该是这样的 dataMap = ['required',

我有一个属性映射被传递到taglib,只想找到其中以“data-”开头的键

例如: 在我的gsp文件中,我使用了这个

<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-' }