【问题标题】:duplicating groovy list when call add method inside web flow state在 Web 流状态中调用 add 方法时复制 groovy 列表
【发布时间】:2014-05-13 20:23:02
【问题描述】:

我使用 webflow 插件,我在流范围内创建动作状态 2 变量,一个作为映射,另一个作为列表,然后我在状态之间获取值,直到状态 3 我将值添加到映射和最后将地图添加到列表中,直到这里没问题,问题是当我尝试添加第二个项目时,就在我将第二个地图添加到列表时,所有以前的地图都被覆盖了。

如果我更改了在从流范围到会话范围映射的启动操作中创建的变量是否不会被覆盖。

有什么想法吗?我想使用流变量。感谢您的宝贵时间

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

【问题讨论】:

    标签: grails


    【解决方案1】:

    列表可以包含重复项,如果您希望集合不包含重复项,那么您应该使用 Set 而不是 List

    查一下

    flow.itemsCollection = []
    

    flow.itemsCollection = new HashSet()
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-28
      • 2012-04-24
      • 1970-01-01
      • 2020-04-06
      相关资源
      最近更新 更多