Spring Web Flow

时间:2014-06-01 17:15:28

标签: spring spring-mvc spring-security spring-webflow

我是Spring网络流程的新手。我有对象列表,我在网页上使用标签显示列表。连续我有两个按钮。点击按钮我传递的对象名称如_eventId_showVideo value = $ {row.name}。通过这种方式,showVideo事件包含对象的名称。与第二个按钮类似。两个按钮都调用相同的方法。一个用于播放.bin视频,第二个用于播放.mov格式的视频。

现在我想区分按钮事件,这意味着从哪个按钮单击方法调用?我可以通过控制器方法传递字符串值(" mov"或" bin")?所以我可以检查字符串是" mov"或" bin"。

1 个答案:

答案 0 :(得分:0)

您可以通过RequestContext触发事件。您不必为此提交任何参数。

如果按钮在视图中指定为:

    <input type="submit" name="_eventId_showVideo1" value="${row.name}"/>
    <input type="submit" name="_eventId_showVideo2" value="${row.someOtherName}"/>

在视图的flow xml中,将flowRequestContext传递为:

    <transition on="showVideo1" to="doSomething1">
        <evaluate expression="classForThisFlow.commonMethodName(flowRequestContext,flowScope.yourForm)"/>
    </transition>
    <transition on="showVideo2" to="doSomething2">
        <evaluate expression="classForThisFlow.commonMethodName(flowRequestContext,flowScope.yourForm)"/>
    </transition>

您的方法为:

    public void commonMethodName(RequestContext context, YourForm yourForm){
        String event = context.getCurrentEvent().getId();
        if(event.equals("showVideo1")){
            //your code 
        }else if(event.equals("showVideo2")){
            //your code
        }else{
            //your code
        }   
    }

希望这有帮助。