我有以下带有2个视图状态的webflow表示
def createFlow = {
startState {
on("addItem"){
//do something
}.to "startState"
on("deleteItem"){
//do something
}.to "startState"
}
secondState {
on("addItem"){
//do something
}.to "startState"
on("deleteItem"){
//do something
}.to "startState"
}
}
在每个视图状态中,我希望有一个glink标记来互相调用,我尝试了这个解决方案但没有成功
<g:link action="create" event="startState">Start</g:link>
<g:link action="create" event="secondState">Second</g:link>
我得到了
在流'purchaseOrder / create'的状态'startState'中没有发现事件'startState'的转换 - 有效的过渡条件是数组[addItem,deleteItem] - 可能是程序员错误,请检查TransitionCriteria的集合状态
我的问题是,可以从glink标签调用自我查看状态或其他视图状态吗?
感谢您的时间
答案 0 :(得分:0)
可以使用g:link来触发事件。
您的网络流的结构应该是这样的:
def createFlow = {
startState {
on("goToSecond"){
//do something
}.to "secondState"
}
secondState {
on("goToStart"){
//do something
}.to "startState"
}
}
在create / startState.gsp
中<g:link action="create" event="goToSecond">Second</g:link>
在create / secondState.gsp
中<g:link action="create" event="goToStart">Start</g:link>
关键是:
在您的情况下,当您真正想要发出事件名称信号时,您正试图直接发出状态信号。此外,您似乎试图从单个视图中执行此操作。可以将单个视图绑定到多个状态(使用视图覆盖或使用模板),但这样做并没有多大意义。