首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Web Flow

Spring Web Flow
EN

Stack Overflow用户
提问于 2014-06-02 01:15:28
回答 1查看 123关注 0票数 0

我是Spring web flow的新手。我有对象的列表,我在网页上使用标签显示列表。我有两个按钮。单击按钮时,我会传递对象名称,如_eventId_showVideo value=${row.name}。通过这种方式,showVideo事件包含对象的名称。第二个按钮也是如此。这两个按钮调用相同的method.one用于播放.bin视频,第二个用于播放.mov格式的视频。

现在我想区分一下按钮事件,这意味着从哪个按钮单击方法被调用?我可以在控制器方法上传递类似于("mov“或"bin”)的字符串值吗?这样我就可以检查字符串是"mov“还是"bin”。

EN

回答 1

Stack Overflow用户

发布于 2014-06-02 10:59:26

您可以获取RequestContext触发的事件。为此,您不必在submit上传递任何参数。

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

代码语言:javascript
复制
    <input type="submit" name="_eventId_showVideo1" value="${row.name}"/>
    <input type="submit" name="_eventId_showVideo2" value="${row.someOtherName}"/>

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

代码语言:javascript
复制
    <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>

您的方法如下:

代码语言:javascript
复制
    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
        }   
    }

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23982404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档