ADF任务流:页面片段的托管bean范围
假设我有一些简单的任务流模板 task-flow-template.xml:
<managed-bean id="__5"><managed-bean-name id="__3">viewBean</managed-bean-name><managed-bean-class id="__2">com.cs.blog.ViewBean</managed-bean-class><managed-bean-scope id="__4">request</managed-bean-scope></managed-bean><managed-bean id="__15"><managed-bean-name id="__13">flowBean</managed-bean-name><managed-bean-class id="__12">com.cs.blog.FlowBean</managed-bean-class><managed-bean-scope id="__14">pageFlow</managed-bean-scope></managed-bean><view id="MainView"><page>/MainView.jsff</page></view>
它具有一个视图活动MainView和两个后备bean。 flowBean具有pageFlow范围,并负责存储流信息。 viewBean具有请求范围(我们将使用该范围),并为ManView视图活动提供服务。
flowBean具有以下返回任务流标题的方法:
public String getFlowTitle() {return null;}
viewBean具有一些字符串字段testString来存储输入值:
protected String testString;public void setTestString(String testString) {this.testString = testString;}public String getTestString() {return testString;}
MainView显示任务流的标题,并具有testString的inputText。 看起来像这样:
我们还在任务流模板上构建了两个任务流–第一流定义和第二流定义。 他们已覆盖托管豆。
对于第一流定义 :
<managed-bean id="__5"><managed-bean-name id="__3">viewBean</managed-bean-name><managed-bean-class id="__21">com.cs.blog.FirstViewBean</managed-bean-class><managed-bean-scope id="__4">request</managed-bean-scope></managed-bean> <managed-bean id="__15"><managed-bean-name id="__13">flowBean</managed-bean-name><managed-bean-class id="__12">com.cs.blog.FirstFlowBean</managed-bean-class><managed-bean-scope id="__14">pageFlow</managed-bean-scope></managed-bean>
public class FirstFlowBean extends FlowBean {public FirstFlowBean() {super();}public String getFlowTitle() {return "FirstFlow";} }
public class FirstViewBean extends ViewBean {public FirstViewBean() {super();}@PostConstructpublic void init() {testString = "FirstFlow"; }
}
因此,testString的标题和默认值为“ FirstFlow”。
对于第二个流程定义 :
<managed-bean id="__5"><managed-bean-name id="__3">viewBean</managed-bean-name><managed-bean-class id="__21">com.cs.blog.SecondViewBean</managed-bean-class><managed-bean-scope id="__4">request</managed-bean-scope></managed-bean> <managed-bean id="__15"><managed-bean-name id="__13">flowBean</managed-bean-name><managed-bean-class id="__12">com.cs.blog.SecondFlowBean</managed-bean-class><managed-bean-scope id="__14">pageFlow</managed-bean-scope></managed-bean>
public class SecondFlowBean extends FlowBean {public SecondfFowBean() {super();}public String getFlowTitle() {return "SecondFlow";} }
public class SecondViewBean extends ViewBean {public SecondViewBean() {super();}@PostConstructpublic void init() {testString = "SecondFlow"; }}
因此,testString的标题和默认值为“ SecondFlow”。
好。 现在该进行实验了。 让我们在页面上放置两个具有第一流定义和第二流定义任务流的区域:
<af:region value="#{bindings.firstflowdefinition1.regionModel}" id="r1"/>
<af:separator id="s1"/>
<af:region value="#{bindings.secondflowdefinition1.regionModel}" id="r2" />
requestScope
将viewBean的范围保留为requestScope,我们将得到以下结果:
在SecondFlow中,我们从FirstViewBean实例中看到了testString。 每个请求只能有一个requestScope bean实例。 viewBean是为FirstFlow任务流创建的,同一实例再次用于SecondFlow。
backingBeanScope
而且,是的,backingBeanScope已解决了该问题。 我们有两个viewBean实例–用于区域r1和r2。
但是,让我们让“第一流定义”任务流程更加复杂:
现在我们可以从MainView调用子任务流(具有相同的定义)。 让我们重复一下实验。 关于初始渲染:
到目前为止,一切都很好。 让我们在FirstFlow的输入文本中输入一些内容,然后按“调用子任务流”:
viewScope
现在,我们将viewBean的范围更改为viewScope并进行相同的实验。 关于初始渲染:
好。 在inputText中输入相同的垃圾:
然后按“呼叫子任务流程”:
而已!
参考:来自ADF实践博客的JCG合作伙伴 Eugene Fedorenko提供的ADF Task Flow中页面片段的托管bean作用域 。
翻译自: https://www.javacodegeeks.com/2012/05/adf-task-flow-managed-bean-scopes-for.html
ADF任务流:页面片段的托管bean范围相关推荐
- adf时间作用域_ADF任务流:页面片段的托管bean作用域
adf时间作用域 介绍 当我们使用ADF任务流并需要实现一些特定于流的业务逻辑或存储一些与流相关的信息时,我们通常使用pageFlowScope托管bean. 而且,当我们需要为流的活动(页面或页面片 ...
- adf时间作用域_ADF:在任务流终结器中支持bean作用域
adf时间作用域 介绍 当我们需要在任务流消失之前做一些最终工作(干净的资源,紧密的连接等)时,这是使用任务流终结器的非常普遍的建议做法. 和往常一样,我们使用在任务流中声明的托管bean. 托管Be ...
- ADF:在任务流终结器中支持bean作用域
介绍 当我们需要在任务流消失之前完成一些最终工作(干净的资源,紧密的连接等)时,这是使用任务流终结器的非常普遍的推荐做法. 和往常一样,我们使用在任务流中声明的托管bean. 托管Bean可以具有不同 ...
- spring 托管bean_在非托管对象中使用Spring托管Bean
spring 托管bean 即使我们想使用现有的最佳和最新技术,我们也必须处理遗留代码. 想象一下,新代码是用Spring框架的最新技术编写的,而旧代码根本不是用Spring编写的. 然后,在非托管S ...
- Thymeleaf抽取公共页面片段
抽取页面 项目中,一般把所有的公共页面片段都抽取出来 放在一个独立的页面中 其他,所有的页面根据需要进行引用 参考文档 th:fragment 抽取公共元素 Name,随便自定义命名 <!DOC ...
- JSP页面中调用Spring Bean
前言 spring boot 2.0.3.RELEASE spring mvc view : jsp JSP页面中调用Spring Bean 在 JSP 页面获得 WebApplicationCont ...
- 在非托管对象中使用Spring托管Bean
即使我们想使用现有的最佳和最新技术,我们也必须处理遗留代码. 想象一下,新代码是用Spring框架的最新技术编写的,而旧代码根本不是用Spring编写的. 然后在非托管Spring对象中使用Sprin ...
- 风险提示:“美食流多品牌全托管加盟”涉嫌诈骗
本论坛接到群众反馈"美食流多品牌全托管加盟"涉嫌诈骗.受害人及其亲友在2022年3月份通过美食流湖南服务商负责人杜某和张某,在长沙岳麓区金茂北塔写字楼23楼"湖南美食流智 ...
- 一小时,学习掌握瀑布流页面布局
什么是瀑布流 瀑布流,又称瀑布流式布局.是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部.其实瀑布流的特点就是参差不齐的排 ...
最新文章
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
- java安全编码指南之:Thread API调用规则
- 多级队列调度算法可视化界面_冷月手撕408之操作系统(8)-处理机调度
- redis 内存不足 排查_Redis 系统学习之 redis 内存模型
- 【音视频安卓开发 (零)】用 Android NDK 编译 FFmpeg 与 X264
- linux强制关机启动后是白屏,解决安装Ubuntu后,启动出现屏幕空白(全黑,无内容)...
- RGB-D dataset
- 盲人方便的使用计算机输入文字,中文信息学报盲人用计算机软件系统中的语音和自然语言处理技术Ξ.PDF...
- 百度Q1营收241亿,李彦宏挥刀改革:“尽力了”没用,要确保在必须赢的战场上胜利...
- 产品经理面试:为什么想做产品经理
- java DataInput接口
- 我很忙,但对你随时有空!
- 计算机科学与技术审核评估专家,中国农业大学 业务动态 审核评估专家Sir Timothy深度走访网络技术中心...
- Chrome插件安装的3种方法,解决拖放不能安装的情况,并提供插件下载
- 微信没有回车键怎么换行_怎么换行-回答 | 为什么苹果的微信没有换行键,想换行怎么办?...
- python中秋月饼
- Redis配置主从服务器
- 做为一个中国的ITer,你感到耻辱吗?看CSDN的“软件中国2006风云榜之10大最具创新性技术”...
- < meter >标签 定义度量衡
- linux通过mount命令访问windows共享文件