adf时间作用域_ADF:在任务流终结器中支持bean作用域

adf时间作用域

介绍
当我们需要在任务流消失之前做一些最终工作(干净的资源,紧密的连接等)时,这是使用任务流终结器的非常普遍的建议做法。 和往常一样,我们使用在任务流中声明的托管bean。 托管Bean可以具有不同的范围-请求,页面流,视图,支持Bean等。范围取决于该Bean实际用于什么。 当我们访问终结器中的backingBean范围托管的bean时,存在一个小问题。 让我们看看下面的示例。
我们有一个包含页面片段的有限任务流:
而且,我们在三个不同范围的任务流中对bean进行了管理-页面流,视图和backingBean:
<managed-bean id="__3"><managed-bean-name id="__5">FlowBean</managed-bean-name><managed-bean-class id="__4">view.BackBean</managed-bean-class><managed-bean-scope id="__2">pageFlow</managed-bean-scope></managed-bean><managed-bean id="__9"><managed-bean-name id="__6">ViewBean</managed-bean-name><managed-bean-class id="__7">view.BackBean</managed-bean-class><managed-bean-scope id="__8">view</managed-bean-scope></managed-bean><managed-bean id="__10"><managed-bean-name id="__11">BackBean</managed-bean-name><managed-bean-class id="__12">view.BackBean</managed-bean-class><managed-bean-scope id="__13">backingBean</managed-bean-scope></managed-bean>
在页面上,我们有三个按钮绑定到每个范围的托管bean:
<af:commandButton text="commandButton 1" id="cb1"action="go" binding="#{backingBeanScope.BackBean.button}"></af:commandButton><af:commandButton text="commandButton 1" id="cb2"  binding="#{viewScope.ViewBean.button}"/><af:commandButton text="commandButton 1" id="cb3"  binding="#{pageFlowScope.FlowBean.button}"/>
Bean类具有button属性和testString属性,用于指示是否分配了按钮:
private RichCommandButton button;public void setButton(RichCommandButton button){this.button = button;}public RichCommandButton getButton(){return button;}public String getTestString(){if (this.button == null)return "The button is not assigned";elsereturn "The button is assigned";}
当我们按下cb1时,我们进入return活动,并且终结器被执行:
public static String resolveExpression(String expression){FacesContext fc = FacesContext.getCurrentInstance();return (String) fc.getApplication().evaluateExpressionGet(fc, expression,String.class);}public void theFinalizer() 
{//Just to have test access to the managed beans//and to be sure we work with the same instancesSystem.out.println(resolveExpression("#{pageFlowScope.FlowBean.testString}")+" " + resolveExpression("#{pageFlowScope.FlowBean.button}"));System.out.println(resolveExpression("#{viewScope.ViewBean.testString}")+" " + resolveExpression("#{viewScope.ViewBean.button}"));System.out.println(resolveExpression("#{backingBeanScope.BackBean.testString}")+" " + resolveExpression("#{backingBeanScope.BackBean.button}"));
}
运行该应用程序,按cb1按钮,然后在系统日志中查看以下内容:
为按钮分配了RichCommandButton [UIXFacesBeanImpl,id = cb3]
为按钮分配了RichCommandButton [UIXFacesBeanImpl,id = cb2]
为按钮分配了RichCommandButton [UIXFacesBeanImpl,id = cb1]
一切似乎都还好。 任务流程已完成,在终结器中,我们使用正确的托管Bean实例。 在此测试中,使用Return活动正确完成了任务流。
现在让我们放弃我们的任务流程–只是离开任务流程所在的页面。 终结器也将执行,并查看系统输出:
为按钮分配了RichCommandButton [UIXFacesBeanImpl,id = cb3]
为按钮分配了RichCommandButton [UIXFacesBeanImpl,id = cb2]
未分配按钮
这意味着我们将使用backingBeanScope.BackBean的不同实例! 万一任务流过多,控制器在终结器中看不到正确的backingBeanScope,它为空,并且控制器创建BackBean的新实例。 同时pageFlowScope和viewScope工作完美。 因此,在任务流中使用backingBean范围管理的bean时要特别小心,尤其是在终结器中访问它们时。 但在任何情况下,你可以使用所描述的同样的伎俩以前的帖子 。
而已!
参考:来自ADF实践博客上的JCG合作伙伴 Eugene Fedorenko 在ADF任务流终结器中支持bean作用域 。

翻译自: https://www.javacodegeeks.com/2012/05/adf-backing-bean-scope-in-task-flow.html

adf时间作用域

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/355907.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Drools:fireAllRules,fireUntilHalt和Timers内部代码清理的详细说明

在六月&#xff0c;我们在博客上发布了一个新的内部状态机&#xff0c;用于管理用户&#xff0c;计时器和引擎线程之间的交互。 现在&#xff0c;我们对该代码进行了另一次大的内部清理&#xff0c;以使其更易于阅读和理解。 如前所述&#xff0c;所有操作&#xff08;插入&am…

nodejs+vue+ElementUi房屋房产销售预约看房系统bqv00

完成房产销售系统&#xff0c;对房源的信息、用户信息及各种资料进行收集和科学的管理&#xff0c;该系统的功能基本可以满足当前市面上的小型房产企业对于房产销售的基本要求&#xff0c;收集各个地区的房源信息并进行分类管理&#xff0c;用户通过注册账号登录网站查询房源信…

ios framework 找不到.h_找不到好看的壁纸?上万张「高清壁纸」,都在iOS捷径里...

所需工具&#xff1a;iOS捷径获取方法&#xff1a;后台私信回复「363」不和大家废话&#xff0c;今天给大家分享一个超好用的ios壁纸捷径&#xff0c;用了它之后再也不怕找不到喜欢的壁纸了~将克拉壁纸的捷径链接在Safari浏览器打开&#xff0c;就会自动跳转到一个获取捷径的窗…

div内容用html语言写,html – 使用DIV作为另一个元素的背景

这里我用2个div做了一个例子&#xff1a;> .content,包含前端所需的一切> .background – 包含文本,图像和背景中的所有其他内容要将一个div包装在另一个div上(制作叠加层),你必须将它们放入相同的元素中,在本例中它是#wrapper div.放置位置&#xff1a;包装的相对宽度/高…

jetty 配置jndi_使用Jetty设置JNDI(嵌入式)

jetty 配置jndi我在开发工作区上运行嵌入式Jetty&#xff0c;从而节省了一些恶性的编译和部署周期。 我与Jetty的合作不多&#xff0c;易用性使我着迷于它。 我需要设置JNDI才能检索与数据库相关的活动的连接池。 尽管某些地方有完整的文档&#xff0c;但大多数都是分散的。 因…

auot lisp 选择集处理_离散量的计算机处理63_1Cv6

计算机语言运用--数值计算6-离散量的计算机处理63_1Cv6计算机&#xff1a;电子线路组成的计算机器。人与计算机则是通过计算机语言-符号系统说给计算机听而交流。计算机语言有低级语言-机器语言、汇编、高级语言-C/C/C#/VB/PASCAL/LISP/JAVA/PYTHON/……成百上千种之多。作为一…

linkedblockingqueue 后 take 不消化_消化不良的成因及护理

疾病名称&#xff1a;消化不良就诊科室&#xff1a;消化内科疾病成因心理和精神的不良应激&#xff1a;患者的精神不愉快、长期闷闷不乐或突然受到猛烈的刺激等均可引起。不良饮食习惯&#xff1a;包括刺激性食物&#xff08;咖啡、浓茶、甜食、油腻、生冷等&#xff09;和不良…

Yandex.Algorithm 2011 Round 2 D. Powerful array 莫队

题目链接&#xff1a;点击传送D. Powerful arraytime limit per test5 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of positive integers a1, a2, ..., an is given. Let us consider its arbitrary subarray al, al  …

html 形状div,div+css实现各种形状(精心整理)

1.正方形.div {width: 100px;height: 100px;background: red;}2.矩形.div {width: 200px;height: 100px;background: red;}3.圆形.div {width: 100px;height: 100px;background: red;-moz-border-radius: 50px;-webkit-border-radius: 50px;border-radius: 50px;}4.椭圆.div {w…

4.1.5事件

用事件有一种监听的思想 一个事件对应一个委托 事件是委托类型 一个事件对应一个委托&#xff0c;委托可以对应多个方法 如气球爆炸了 气球的反应 小孩的反应 事件源有代码自动激发事件 扔出事件 —————————————— 3.只能在类的内部触发事件 4.可以在内部…

485不用双绞线可以吗_现在在上海,挡风玻璃可以一个标志都不用贴吗?

问近日&#xff0c;有市民咨询&#xff1a;现在在上海&#xff0c;车上挡风玻璃可以一个标志都不用贴吗&#xff1f;答可以一个标志都不贴。自2020年3月1日起&#xff0c;本市机动车在本市办理注册、变更、转移登记和核发检验标志、补换检验标志业务时&#xff0c;将自动生成检…

2021上饶市高考中考成绩查询,2021年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口...

2018年上饶中考成绩公布查询时间 上饶中考成绩查询方式入口2018年上饶高考结束了&#xff0c;可是上饶中考又来了!6月注定是一个不平淡的月份。又一大批孩子朝着青春出发踏着坚定的脚步&#xff0c;行走在如火的六月。宁静的清晨&#xff0c;静谧的夜&#xff0c;那条反反复复走…

git中文件的三种状态

用xcode的时候&#xff0c;左侧栏文件的邮右边时不时会看到M&#xff0c;A这一类的字母。当然&#xff0c;这些以后再写上。先说一下git里文件的三种状态 已提交&#xff08;committed&#xff09; 已经提交的本地仓库&#xff08;repository&#xff09;&#xff0c;需要手动…

桌面怎么设置 计算机 网络,Win10 10130桌面电脑网络图标怎么设置?

越来越多朋友的计算机安装Windows10系统&#xff0c;现在Windows10系统已经升级到10130版&#xff0c;我的计算机升级到了10130版。安装Windows10的10130版系统后&#xff0c;桌面只有回收站和软媒的图标&#xff0c;如何把电脑、网络、用户的文件、控制面板等图标设置到桌面上…

swift 打开第三方应用_iOS卡通人物帧动画入门9(大结局):番外篇-扩展第三方类

扩展第三方类细心的朋友可能会发现&#xff0c;我们前面计算主角的大小用的总是同一方向第一帧纹理的大小&#xff0c;如果纹理大小有出入的话&#xff0c;会产生较大的偏差&#xff0c;最好的方法是取当前动画帧纹理的大小。不过这有些难度&#xff0c;所以我们退之求其次&…

vue如何过滤html标签,去除富文本中的html标签及vue、react、微信小顺序中的过滤器...

在猎取富文本后&#xff0c;又只需显现部分内容&#xff0c;须要去除富文本标签&#xff0c;然后再截取个中一部分内容&#xff1b;然后就是过滤器&#xff0c;在微信小顺序中运用照样挺屡次的&#xff0c;在vue及react中也遇到过1.富文本去除html标签去除html标签及 空格let r…

声速的测量的实验原理和应用_CEMS烟气在线分析仪测量原理计经典应用

烟气连续在线监测系统运用抽取冷凝采样、后散射烟尘浓度测量、皮托管烟气流速测量及计算机网络通讯技术&#xff0c;实现了固定污染源污染物排放浓度和排放总量的在线连续监测。同时又针对国内煤种较杂、煤质变化大、污染物排放浓度高、烟气湿度大的状况从技术上进行了改进。并…

怎么用计算机算弧度制,怎么设置计算器 把度数转化为弧度

计算器默认角度制(D)。此时&#xff0c;按下mode&#xff0c;mode&#xff0c;2(Rad)&#xff0c;可将计算器调整为弧度制。输入要转化的角度(如30)&#xff0c;按下shift&#xff0c;ans(DRG三角)&#xff0c;1(D)&#xff0c;画面将显示30度&#xff0c;按下等号&#xff0c;…

datagrid 什么时候结束编辑_孕吐到底什么时候结束

很多女性刚怀孕&#xff0c;都会出现妊娠反应&#xff0c;比如孕吐。它是由妊娠后绒毛分泌的绒毛膜促进腺激素引起的&#xff0c;在妊娠初期腺激素分泌量较多。备受孕吐折磨的女性&#xff0c;每次吃饭&#xff0c;一闻到刺激性味道&#xff0c;就会想吐&#xff0c;非常难受&a…

201521123032 《Java程序设计》第7周学习总结

1. 本周学习总结 以你喜欢的方式&#xff08;思维导图或其他&#xff09;归纳总结集合相关内容。 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 在contains方法中调用indexOF方法&#xff0c;首先比较下标o&#xff0c;如果onull那么elementData[]中是否n…