Ich habe einen Spring Webflow, der zwischen verschiedenen Schritten in einer Form linear vor und zurück navigiert. Da Benutzer gleichzeitig von verschiedenen Browsern aus zugreifen, müssen Sie zwischen den einzelnen Schritten überprüfen, ob das Formular in einer anderen Browserinstanz abgeschlossen wurde. Wenn dies der Fall ist, sollte der Benutzer direkt zur letzten Seite übergehen. Der Webflow sieht ungefähr so aus:Können Sie eine Variable an einen Spring-Flow-Entscheidungsstatus übergeben, um sie als Ziel zu verwenden?
<view-state id="claimFlowStepOne" view="onlineclaims/my-claims-step1" model="submission">
<transition on="claimStep1Continue" to="checkSubmitted1">
</transition>
</view-state>
<decision-state id="checkSubmitted1">
<if test="onlineClaimsAction.checkClaimAlreadySubmitted(submission.claim)"
then="endClaimFlow" else="claimFlowStepTwo" />
</decision-state>
<view-state id="claimFlowStepTwo" view="onlineclaims/my-claims-step2"
model="submission">
<transition on="claimStep2Back" to="checkSubmitted2to1"
validate="false">
</transition>
<transition on="claimStep2Continue" to="checkSubmitted2to3">
<evaluate expression="onlineClaimsAction.savePaymentDetails(submission)" />
</transition>
</view-state>
<decision-state id="checkSubmitted2to1">
<if test="onlineClaimsAction.checkClaimAlreadySubmitted(submission.claim)"
then="endClaimFlow" else="claimFlowStepOne" />
</decision-state>
<decision-state id="checkSubmitted2to3">
<if test="onlineClaimsAction.checkClaimAlreadySubmitted(submission.claim)"
then="endClaimFlow" else="claimFlowStepThree" />
</decision-state>
Und so weiter, für jeden Schritt. Wir enden mit vielen, vielen Entscheidungszuständen (2 * (N-1)), die alle sehr ähnlich sind.
Mein Manager hat gebeten, dass ich eine allgemeine Methode erstelle, um die Entscheidungszustände zu ersetzen. Allerdings wissen wir beide nicht (oder wenn es überhaupt möglich ist), es so zu machen, dass wir eines der möglichen Ziele als Argument übergeben können. Ich habe die Spring-Dokumentation durchgesehen, konnte aber nichts darüber herausfinden, ob es möglich ist, eine Variable als Aktion/Ziel zu verwenden. Ist das möglich?