Весенний поток | Другой метод проверки для каждого перехода

В настоящее время у меня есть приложение Spring Webflow, которое использует Webflow + Ajax.

У меня есть состояние просмотра под названием "А", которое имеет несколько переходов.

<view-state id="A" model="myClass">
    <transition on="X1" .../>
    <transition on="X2" .../>
    <transition on="X3" .../>
</view-state>

Проблема в том, что каждый переход должен проверять только часть myClass, а не все. По умолчанию Spring Webflow имеет единственный метод для проверки.

По сути, мне нужно вызывать разные методы проверки для каждого перехода вместо одного.

Это возможно? Есть идеи, как это сделать?

Заранее спасибо!!!

2 ответа

Решение

Почему бы не использовать один ValidationClass для просмотра состояния? Вы можете получить событие, которое вызывает проверку, вызвав

public String getUserEvent();

на ValidationContext. Затем, в зависимости от результата, сделайте все, что вы хотите проверить.

Можно использовать атрибут с именем validatorMethod чтобы указать конкретный метод для вызова валидатора, как описано здесь. Вот модифицированный пример из Javadoc, показывающий, как это сделать:

<view-state id="displayCriteria">
    <on-render>
        <evaluate expression="formAction.setupForm"/>
    </on-render>
    <transition on="search" to="executeSearch">
        <evaluate expression="formAction.bindAndValidate">
            <attribute name="validatorMethod" value="validateSearchCriteria"/>
        </evaluate>
    </transition>
</view-state>

Это предполагает, что валидатор, определенный для searchFormAction имеет метод, называемый validateSearchCriteria,

Другие вопросы по тегам