理解页面的ADF Lifecycle的Postback和InitialRender

        在讲ADF之前,先说下JSF的生命周期,在JSF生命周期概述一文中已经介绍过,简单说下JSF的Initial request和postback request的区别吧,Initial request一般发生在点击link标签、地址栏直接访问发生,指的是首次加载页面,只会经过Restore View & Render Response两个阶段;而postback request一般发生在点击按钮提交表单、其它post请求等,它会经历JSF各个生命周期阶段

        对于ADF的InitialRender和Postback也是一样的,页面上的不同操作将会造成不同的结果,详细列表如下:

 

 在输入URL之后首次访问该页面  InitialRender
 将页面URL之后的状态字符串删除后在URL栏使用回车 InitialRender
 在页面上使用Submit Postback
 在页面上使用Partial Submit或Auto Submit Postback
 使用浏览器的Reload(在确认Resend之后) Postback
 使用浏览器的Reload(没有确认Resend) 既没有InitialRender也没有Postback
 Focus在URL栏位后使用回车 既没有InitialRender也没有Postback
 将页面URL之后的状态字符串删除后使用浏览器刷新 既没有InitialRender也没有Postback
 使用UIC的Action属性从页面A导航至页面B 页面A为Postback,页面B为InitialRender
 使用浏览器后退和前进在页面A和B之间跳转 页面A和页面B均既没有InitialRender也没有Postback

     应用场景:

  • 可以利用#{adfFacesContext.initialRender}和#{adfFacesContext.postback}作为是否执行某些操作的判断依据,比如:我想在页面刚加载的时候执行一个方法,但在接下来的页面按钮点击操作不要再执行,这时可以利用InvokeAction,并将refresh设为ifNeeded,refreshCondition设为#{adfFacesContext.postback==false},从而达到目的,如图:

 

 



 

 

  • 以后待补充,基本都是围绕#{adfFacesContext.initialRender}和#{adfFacesContext.postback}的值进行条件判断。

    更多文章请见我的个人博客:http://www.acanblog.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值