2009-08-03 10 views
1

Ich habe einen Ansichtszustand, der mehrere Ereignisse zurückgeben kann. Für die meisten von ihnen gibt es eine gemeinsame Java-Methode, die ich "evaluieren" möchte. Es gibt wenige, wo ich etwas anderes machen möchte. Jedes Ereignis wird jedoch in einen anderen Zustand übergehen. Mein Web-Flow-Code wiederholt jetzt das Auswerten der Methode mehrere Male, einmal für jeden anwendbaren Übergang. Natürlich, wenn ich die Methode immer auswerten wollte, könnte ich sie im On-Exit aufrufen, aber da ich es nicht in allen Fällen tun möchte, bin ich bei den Übergangsaufrufen immer wieder dabei. Gibt es einen anderen Weg, dies zu tun?WebFlow 2.0 Frage

Frank

Antwort

0

Das klingt wie eine Situation, in der Sie sich anschauen sollten einige der Logik bewegt, die derzeit in dem Fluss XML kodiert wird, sich in einem Aufruf einer Aktion POJO. Vielleicht ein einzelner Aufruf einer Aktion bei on-exit, der den Flow-Request-Kontext übergibt und die Action-Methode selbst herausfinden lässt (aus Anfrageparametern), ob Ihre übliche Java-Methode aufgerufen werden soll.

Etwas wie folgt:

<view-state id="home" view="home"> 
    <transition on="foo" to="fooView" /> 
    <transition on="bar" to="barView" /> 
    ... 
    <on-exit> 
    <evaluate expression="fooAction.invokeIfNecessary(flowRequestContext)" /> 
    </on-exit> 
</view-state> 
0

Übergang zu einem Entscheidungs-Zustand auszuwerten dort, und als Übergang mit currentEvent.id zum ursprünglichen Ziel SMT wie: <decision-state id="decision"> <on-entry> <evaluate ... </on-entry> <if test="currentEvent.id=='goruntule'" then="goruntule"/> <if test="currentEvent.id=='guncelle'" then="guncelle"/> <if test="currentEvent.id=='sil'" then="sil"/> </decision-state>

Verwandte Themen