OAF 交互式列车 上一步 下一步的简单使用
在实际的需求中,我们往往会遇到在下一步的时候验证某些参数,而上一步不需要验证。
这个是非常粗暴的解决方式
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
OAF 交互式列车 上一步 下一步的简单使用的更多相关文章
- js 上一步 下一步 操作
<a id="syb" href="#" style="display: block;" class="btn button ...
- 上一步是硬件描述语言,下一步是FPGA
上一步是硬件描述语言,下一步是FPGA. 学习了硬件描述语言(Verilog或者VHDL)之后,FPGA该如何继续. 世上没有捷径,每一步都得踏踏实实的走.学习FPGA也是这样,在有了硬件描述语言的基 ...
- Jquery 上一步、下一步及提交
111 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <tit ...
- 在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步
在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步ctrl+alt+右 回到下一步
- IDEA - 返回上一步,回到下一步 代码 快捷键
回到上一步 ctrl + alt + < 回到下一步 ctrl + alt + >
- IDEA返回上一步
在开发中进入一个方法后想要到原来那行 ctrl+alt+左 回到上一步 ctrl+alt+右 回到下一步
- js返回上一步
用按钮来链接返回上一步. <input type ="button" value="返回上一步" onclick="javascript:his ...
- JS 返回上一步(退回上一步上一个网页)
链接式: <a href="JavaScript:history.go(-1)">返回上一步</a> <a href="<%=Requ ...
- for循环中let与var的区别,块级作用域如何产生与迭代中变量i如何记忆上一步的猜想
我在前一篇讨论let与var区别的博客中,顺带一笔带过了let与var在for循环中的不同表现,虽然解释了是块级作用域的影响,但具体是怎么去影响的呢,我尝试的去理解了下,这篇博客主要从for循环步骤拆 ...
随机推荐
- 【译】理解node.js事件轮询
Node.js的第一个基本论点是I/O开销很大. 当前编程技术中等待I/O完成会浪费大量的时间.有几种方法可以处理这种性能上的影响: 同步:每次处理一个请求,依次处理.优点:简单:缺点:任何一个请求都 ...
- ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))
数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元) 数论中的倒数是有特别的意义滴 你以为a的倒数在数论中还是1/a吗 (・∀・)哼哼~天真 先来引入求余概念 (a + b) % p = (a% ...
- vs2012添加自定义资源步骤
1.新建Win32工程 2.选中Resource Files -> add resource 点击打开 这里需要你填写一个Resource Type ,假如你之前已经有了,就直接输入,没有的话在 ...
- C#中值和引用
c#中有两种基本类型,它们分别是值类型和引用类型:而每种类型都可以细分为如下类型: ps:1.基本类型是值类型 2.类.接口.委托都是引用类型
- AS语法
SELECT COUNT(*) AS NumberOfOrders FROM Orders 含义:将选出的数据作为一列显示,列名为NumberOfOrders
- 如何Python写一个安卓APP
前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般 ...
- 32位MD5加密补齐丢失的0
/// <summary> /// 获取32位MD5加密字符串(已补完0) /// </summary> /// <param name="strWord&qu ...
- codeforces 1097 Hello 2019
又回来了.. A - Gennady and a Card Game 好像没什么可说的了. #include<bits/stdc++.h> using namespace std; cha ...
- [Linux] - Linux安装JDK
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html <官方JDK下载 之后 ...
- C#学习笔记(三):逻辑关系运算符和if语句
条件语句 分支语句和循环语句是程序里最重要的逻辑. IF语句.分支语句.循环语句 using System; using System.Collections.Generic; using Syste ...