Grails 在web流状态内调用add方法时复制groovy列表

Grails 在web流状态内调用add方法时复制groovy列表,grails,Grails,我使用webflow插件,在开始操作时在flow scope中创建2个变量,一个作为映射,另一个作为列表,然后我在状态之间拾取值,直到状态3我将DOS值添加到映射中,最后将映射添加到列表中,直到这里没有问题,问题是,当我尝试添加第二项时,当我将第二个映射添加到列表中时,所有以前的映射都会被覆盖 如果我更改,则在“开始”操作中创建的变量从流范围映射到会话范围映射不会被覆盖 有什么想法吗?我想使用流变量。谢谢你的时间 def controllerNameFlow = { init { flow.

我使用webflow插件,在开始操作时在flow scope中创建2个变量,一个作为映射,另一个作为列表,然后我在状态之间拾取值,直到状态3我将DOS值添加到映射中,最后将映射添加到列表中,直到这里没有问题,问题是,当我尝试添加第二项时,当我将第二个映射添加到列表中时,所有以前的映射都会被覆盖

如果我更改,则在“开始”操作中创建的变量从流范围映射到会话范围映射不会被覆盖

有什么想法吗?我想使用流变量。谢谢你的时间

def controllerNameFlow = {
init {
  flow.items = [:]
  flow.itemsCollection = []
}
on("success").to "state1"
on("error").to "done"

state1 = {
  flow.item = "abc"
}
on("confirm").to "state2"

state2 = {
  flow.presentation = "a123"
}
on("confirm").to "state3"

state3 = {
  flow.items.put("item", flow.item)
  flow.items.put("presentation", flow.presentation)

  flow.itemsCollection.add flow.items
}
on("confirm").to "state1"
}

列表可以包含重复项,如果希望集合不包含重复项,则应使用集合而不是列表

查格

希望这有帮助

flow.itemsCollection = []
flow.itemsCollection = new HashSet()