Spring Webflow |每次转换的验证方法不同

时间:2011-11-16 15:03:24

标签: ajax spring spring-mvc tiles2 spring-webflow-2

我目前有一个使用Webflow + Ajax的Spring Webflow应用程序。

我有一个名为“A”的视图状态,它有几个转换。

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

问题是每次转换只应验证“myClass”的一部分,而不是全部。默认情况下,Spring Webflow有一个方法可以验证。

基本上我需要的是在每次转换时调用不同的验证方法,而不是只有一个。

这可能吗?关于如何做到这一点的任何想法?

提前致谢!!!

2 个答案:

答案 0 :(得分:3)

为什么不将一个ValidationClass用于视图状态? 您可以通过调用

获取触发验证的事件
public String getUserEvent();

在ValidationContext上。 然后,根据结果做任何你想要验证的内容。

答案 1 :(得分:1)

可以使用名为validatorMethod的属性来指定要在验证器上调用的特定方法,如here所述。以下是来自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的方法。