2016-04-09 6 views
0

Ситуация: Я разрабатываю приложение Spring MVC веб-потока, в том, что у меня есть две таблицы customer и customerAdress и две соответствующие модели: customerModel и customerAdressModel, теперь следующий мой flow.xml:Как сохранить значение, возвращаемое бизнес-службой в переменной в потоке весеннего веб-сайта?

<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> 

сейчас insertCustomer вставки клиент, fetchCustomerId выбирает АДРЕС клиента идентификационному и insertCusotomerAdress вставок заказчика id

Проблема: Моя проблема заключается в том, что этот код не работает, в частности insertCustomerAdress не работает, я думаю, что допустил ошибку в декальнинге id или присвоил значение службы buisness id, может кто-нибудь, пожалуйста, скажите мне правильный синтаксис?

ответ

0

По умолчанию состояние действия выполняет только первое действие. Для выполнения цепочки действий используйте 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>