2010-06-10 1 views
0

Скажем, у меня есть этот тип WebFlow:Может ли состояние действия веб-потока иметь несколько переадресаций на успех?

def myFlow = { 
    state1 { 
    } 
    on("next").to("stateAct") 

    stateAct { 
     action { 
      ... DB stuff ... 
     } 
    } 
    on("success").to("state2") 

    state2 { 
    } 
    on("prev").to("state1") 
} 

Теперь содержимое "stateAct" является общим между State1 и состояние2. Смысл, если я нажму «next» from state1, мне нужно передать stateAct, прежде чем я смогу перейти к state2 (который является текущей реализацией), и если я нажму «prev» в состоянии2, мне нужно, чтобы он прошел через stateAct, прежде чем он перейдет к состоянию1. Очевидно, что в примере веб-потока выше он не делает последнего.

Итак, мой вопрос: есть ли способ обнаружить в stateAct, который его вызвал (state1 или state2), чтобы я мог перенаправить соответственно на «успех»? Или что-то подобное этому поведению?

Спасибо!

ответ

1

Почему бы не хранить эту информацию в переменной проточной области видимости? Что-то вроде:

def myFlow = { 
    state1 { 
     on("next") { 
      flow.originator = 'state1' 
     }.to("stateAct") 
    } 
    stateAct { 
     action { 
      if (flow.originator == 'state1') do something 
      if (flow.originator == 'state2') do something else 
     } 
    } 
    on("success").to("state2") 

    state2 { 

     on("prev"){ 
     flow.originator = 'state2' 
     }.to("stateAct") 
} 
+0

Спасибо, мой первый раз, чтобы сделать webflows так что я буду попробовать это =) Однако, как последующий вопрос, если State2 входит stateAct через на пред и заканчивается, будет не так вернитесь в состояние2 из-за строки включения («успех»). к («state2»)? – callie16

+0

Да, вы хотите изменить stateAct, чтобы перенаправить пользователя в разные места, в зависимости от того, откуда они пришли. –

+0

Хм ... хорошо, я попробую это =) Спасибо! – callie16