在实际的需求中,我们往往会遇到在下一步的时候验证某些参数,而上一步不需要验证。
这个是非常粗暴的解决方式
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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· Apache Tomcat RCE漏洞复现(CVE-2025-24813)