我是Spring网络流程的新手。我有对象列表,我在网页上使用标签显示列表。连续我有两个按钮。点击按钮我传递的对象名称如_eventId_showVideo value = $ {row.name}。通过这种方式,showVideo事件包含对象的名称。与第二个按钮类似。两个按钮都调用相同的方法。一个用于播放.bin视频,第二个用于播放.mov格式的视频。
现在我想区分按钮事件,这意味着从哪个按钮单击方法调用?我可以通过控制器方法传递字符串值(" mov"或" bin")?所以我可以检查字符串是" mov"或" bin"。
答案 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
}
}
希望这有帮助。