即时通讯使用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"
}
答案 0 :(得分:0)
列表可以包含重复项目,如果您希望集合不包含重复项目,那么您应该使用Set而不是List
恰克
flow.itemsCollection = []
到
flow.itemsCollection = new HashSet()
希望这有帮助