我是Spring web flow的新手。我有对象的列表,我在网页上使用标签显示列表。我有两个按钮。单击按钮时,我会传递对象名称,如_eventId_showVideo value=${row.name}。通过这种方式,showVideo事件包含对象的名称。第二个按钮也是如此。这两个按钮调用相同的method.one用于播放.bin视频,第二个用于播放.mov格式的视频。
现在我想区分一下按钮事件,这意味着从哪个按钮单击方法被调用?我可以在控制器方法上传递类似于("mov“或"bin”)的字符串值吗?这样我就可以检查字符串是"mov“还是"bin”。
发布于 2014-06-02 10:59:26
您可以获取RequestContext触发的事件。为此,您不必在submit上传递任何参数。
如果在视图中将按钮指定为:
<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
}
}希望这能有所帮助。
https://stackoverflow.com/questions/23982404
复制相似问题