在实际的需求中,我们往往会遇到在下一步的时候验证某些参数,而上一步不需要验证。

这个是非常粗暴的解决方式

 if( "goto".equals(pageContext.getParameter(EVENT_PARAM) ){
OATrainBean trainBean =
(OATrainBean)pageContext.getPageLayoutBean().getLocation();
int target = Integer.parseInt(pageContext.getParameter(VALUE_PARAM)); //获取目标页面所处的节点,从1开始,第一个页面为1
int step = trainBean.getSelectedTrainStepRenderedIndex()==0?0:trainBean.getSelectedTrainStepRenderedIndex();//获取当前页面所处的节点,从1开始,(我有点不太确定这段解释是否正确) int k = trainBean.getNumberOfRenderedTrainSteps();//获取当前交互式列车的总页面数量 //在实际的应用中,我们一般是知道我点击下一步/上一步会跳转在第几个页面上
//例如我当前处于第三个页面
if( target == 4){
//NEXT
//下一步
//write your logic here……
}
if( target == 2){
//上一步
//PREVIOUS
//write your logic here……
}
}

这个是非常标准的解决方式

if (GOTO_EVENT.equals(pageContext.getParameter(EVENT_PARAM)) &&
"NavBar".equals(pageContext.getParameter(SOURCE_PARAM))) {
OATrainBean trainBean =
(OATrainBean)pageContext.getPageLayoutBean().getLocation();
int step =
trainBean.getSelectedTrainStepRenderedIndex() == 0 ? 0 : trainBean.getSelectedTrainStepRenderedIndex();
int target =
Integer.parseInt(pageContext.getParameter(VALUE_PARAM));
if (step + 1 > target) {
//上一步 } else {
//下一步 }

参考文档

How to catch the 'Next' button click in a Train Flow

APPLICATION EXTENSION TECHNICAL DESIGN

Problem related to train.

OAF 交互式列车 上一步 下一步的简单使用的更多相关文章

  1. js 上一步 下一步 操作

    <a id="syb" href="#" style="display: block;" class="btn button ...

  2. 上一步是硬件描述语言,下一步是FPGA

    上一步是硬件描述语言,下一步是FPGA. 学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续. 世上没有捷径,每一步都得踏踏实实的走.学习FPGA也是这样,在有了硬件描述语言的基 ...

  3. Jquery 上一步、下一步及提交

    111 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...

  4. 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步

    在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步ctrl+alt+右 回到下一步

  5. IDEA - 返回上一步,回到下一步 代码 快捷键

    回到上一步 ctrl + alt + < 回到下一步 ctrl + alt + >

  6. IDEA返回上一步

    在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步

  7. js返回上一步

    用按钮来链接返回上一步. <input type ="button" value="返回上一步" onclick="javascript:his ...

  8. JS 返回上一步(退回上一步上一个网页)

    链接式: <a href="JavaScript:history.go(-1)">返回上一步</a> <a href="<%=Requ ...

  9. for循环中let与var的区别,块级作用域如何产生与迭代中变量i如何记忆上一步的猜想

    我在前一篇讨论let与var区别的博客中,顺带一笔带过了let与var在for循环中的不同表现,虽然解释了是块级作用域的影响,但具体是怎么去影响的呢,我尝试的去理解了下,这篇博客主要从for循环步骤拆 ...

随机推荐

  1. PHP二维数组排序(感谢滔哥lvtao.net)

    滔哥原创 /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\|| ...

  2. python no module named 'win32api'

    在cmd下执行 pip install pypiwin32api   即可

  3. 编译安装 http

    1. 安装 apr http服务依赖 apr和apr-util ,安装 http 前需先安装这两个程序 apr 简介:http://www.cnblogs.com/Alight/p/3997777.h ...

  4. C++面向对象高级开发课程(第三周)

    一,类与类之间的关系:继承(Inheritance).复合(Composition).委托(Delegation). 二,复合:表示 is-a ,该设计思想可以参照C语言的 struct . 1. 例 ...

  5. 自定义LisetView

    1.ListView listview=findViewById(R.id.listview); 2.public class MyAdapter extends BaseAdapter{ priva ...

  6. 【第十四章】 springboot + profile(不同环境读取不同配置)

    具体做法: 不同环境的配置设置一个配置文件,例如:dev环境下的配置配置在application-dev.properties中:prod环境下的配置配置在application-prod.prope ...

  7. NOIP2018 退役记

    NOIP挂完,OI再见 AFO Day 0 早上的高铁,1点多到广州,2点多到酒店,下午就是颓颓颓,然后晚上随便刷了一下板子,反正PJ也没啥板子可以刷 就这样浪费了一天,我到底在干嘛 Day 1 早上 ...

  8. [BZOJ1370][Baltic2003]Gang团伙 并查集+拆点

    Description 在某城市里住着n个人,任何两个认识的人不是朋友就是敌人,而且满足: 1. 我朋友的朋友是我的朋友: 2. 我敌人的敌人是我的朋友: 所有是朋友的人组成一个团伙.告诉你关于这n个 ...

  9. 《重构网络:SDN架构与实现》Chapter7 SDN与网络虚拟化 随笔

    参考: <重构网络:SDN架构与实现>,作者:杨泽卫.李呈. Chapter7 SDN与网络虚拟化 结构 7.1 网络虚拟化 7.1.1 为什么需要网络虚拟化技术 7.1.2 网络虚拟化 ...

  10. UVa 11134 传说中的车

    https://vjudge.net/problem/UVA-11134 题意:在n*n的棋盘上放n个车,使得任意两个车不相互攻击,且第i个车在一个给定的矩形Ri之内.用4个整数xli,yli,xri ...