2016-04-09 4 views
0

Situation: ich eine Feder Mvc Web Flow App entwickle, dass ich habe zwei Tabellen customer und customerAdress und zwei entsprechende Modelle: customerModel und customerAdressModel, ist jetzt nach meiner flow.xml:Wie speichert man den Wert, der von einem Business Service in einer Variable im Spring Web Flow zurückgegeben wird?

<var name="customer" class="com.model.Customer"/> 
    <var name="customerAdress" class="com.model.CustomerAdress"/> 
    <var name="id"> 

    <view-state id="customer" view="customerView.jsp" model="customer"> 

    <transition on="next" to="customerAdress"/> 
    </view-state> 

    <view-state id="customerAdress" view="customerAdressView.jsp" model="customerAdress"> 

    <transition on="next" to="insertCustomer"/> 
    </view-state> 

    <action-state id="insertCustomer"> 
    <evaluate expression="Buisness.insertCustomer(customer)"/> 
    <evaluate expression="Buisness.fetchCustomerId(customer)" result="id"/> 
    <evaluate expression="Buisness.insertCustomerAdress(id,cutomerAdress)"/> 
    </action-state> 

Jetzt insertCustomer Einsätze Kunde holt fetchCustomerId Kunden-ID und insertCusotomerAdress Einsätze Adressen von Kunden durch id

Problem: Mein Problem ist, dass dieser Code nicht funktioniert, speziell insertCustomerAdress funktioniert nicht, ich glaube, ich habe ein paar Fehler in idid oder Zuweisung von Business-Service-Wert zu id getan, kann jemand bitte sagen mir richtige Syntax?

Antwort

0

Standardmäßig führt der Aktionszustand nur die erste Aktion aus. Um eine Kette von Aktionen auszuführen, verwenden Sie Named actions.

<action-state id="insertCustomer"> 
    <evaluate expression="Buisness.insertCustomer(customer)"> 
     <attribute name="name" value="insertCustomer" /> 
    </evaluate> 
    <evaluate expression="Buisness.fetchCustomerId(customer)" result="id"> 
     <attribute name="name" value="fetchCustomerId" /> 
    </evaluate> 
    <evaluate expression="Buisness.insertCustomerAdress(id,cutomerAdress)"> 
     <attribute name="name" value="insertCustomerAdress" /> 
    </evaluate> 
    <transition on="insertCustomerAdress.success" to="[state id to transit]" /> 
</action-state> 
Verwandte Themen