2013-08-20 2 views
3

Я следующее view-state:Если и другое заявление в WebFlow внутри вида государства

<view-state id="editbestellung" view="eap/orderedit.xhtml" 
    model="flowScope.entity"> 
    <transition on="save" to="eaporderlist" bind="true"> 
     <evaluate 
      expression="eapBestellungDelegate.save(flowScope.entity,currentUser.name)" /> 
    </transition> 
</view-state> 

Нет другой я не установил flowScope.isToDo на истинной.
Теперь мне нужно проверить, правда ли этот flowScope. Если это так, transition должен перенаправить to="eapordertodolist", и если он ложный, он должен пойти to="eaporderlist".
Но я только знаю, как установить заявление, если-подобное:

<if test="testingMethod()" then="view-state when true" else="view-state when false" /> 

Так как я могу реализовать оператор if-внутри вида государства выше и сделать необходимые действия?

+0

Когда вы устанавливаете 'flowScope.isToDo' на true? в сохранении-методе? –

+0

Ранее. Но переменная остается на всю жизнь потока ... –

+0

, и вы хотите проверить ПОСЛЕ сохранения метода? –

ответ

3

Применение Decision-States

С помощью принятия государственного элемента в качестве альтернативы к действию государства, чтобы принять решение маршрутизации с использованием удобно, если/то синтаксис. Приведенный ниже пример показывает состояние moreAnswersNeeded выше в настоящее время реализуется в виде решения государства вместо действия государства

Ваш editbestellung -state будет выглядеть следующим образом (обратите внимание, что я изменил to):

<view-state id="editbestellung" view="eap/orderedit.xhtml" 
    model="flowScope.entity"> 
    <transition on="save" to="eaporderdecision" bind="true"> 
     <evaluate 
      expression="eapBestellungDelegate.save(flowScope.entity,currentUser.name)" /> 
    </transition> 
</view-state> 

Затем вы добавляете состояние принятия решения:

<decision-state id="eaporderdecision"> 
    <if test="flowScope.isToDo" then="eapordertodolist" else="eaporderlist" /> 
</decision-state> 
+0

Именно этот if-statement я использую ...? Проблема в том, что у меня уже есть переход на оператор. Мне нужно изменить часть 'to =' этого перехода. И я не знаю, как это сделать –

+0

нажмите на ссылку. есть хорошее объяснение. вам понадобится дополнительное состояние для принятия решения –

+0

@PhilippSander Просто вопрос понимания: нужно ли создать метод? Является ли 'flowScope', который содержит true/false, недостаточно? Не могу проверить это в настоящее время ... –

Смежные вопросы