设为首页
收藏本站
搜索
热搜:
Java
Python
UI
人工智能
Web
影视特效
抖音
网络营销
运营
本版
文章
帖子
群组
用户
登陆
注册
首页
Portal
互联网资讯
视频教程
技术社区
BBS
IT培训
学历提升
快速发布
个人中心
今日签到
私信列表
消息中心
搜索全站
课程咨询
返回顶部
大内高手社区
›
技术社区
›
Java大数据论坛
›
JSF生命周期是怎样的
蓝毒
关注Ta
发帖数
5
粉丝
1
此人很懒,什么也没有留下
[Java大数据论坛]
Java架构师面试题目及答案汇总
[Web前端论坛]
HTML 布局是怎么样的
[Web前端论坛]
HTML区块的应用及使用
[Java大数据论坛]
JSF的特性(特点)有哪些
阅读作者更多精彩帖子
热门问答
更多热门问答
1
淘宝客注册流程步骤
22567人围观,发布于2021-09-26
1
APP运营核心要点有哪些
21042人围观,发布于2022-07-08
0
了解运营
13183人围观,发布于2021-09-18
0
网站的 TDK基本格式
12363人围观,发布于2021-09-23
0
SEO优化中网站地图在的主要作用
13668人围观,发布于2022-01-13
0
快速提高网站SEO优化排名的方法
16625人围观,发布于2022-01-13
技术文章
更多技术文章
告别“限速”,个人网盘进入云时代
2022-12-28
长难任务设计指南,必须收藏!
2022-12-28
新消费,走进「韧性时代」
2022-12-28
营销技能:营销4P之外,还有这些经典理论
2022-12-28
实例分享 | 社区产品编辑器的设计开发要点
2022-12-28
产品经理方法论——流程与审批流的区别
2022-12-27
返回列表
JSF生命周期是怎样的
[复制链接]
蓝毒
Lv.2
显示全部楼层
发表于 2021-11-4 11:11:19
|
阅读模式
JSF(JavaServer Faces)应用程序框架的简单程序是自动管理生命周期阶段,并允许您手动管理。JSF(JavaServer Faces)应用程序的生命周期从客户端对页面发出HTTP请求时开始,并在服务器响应页面时结束。
JSF生命周期分为两个主要阶段:
执行阶段
渲染阶段
一、执行阶段
在执行阶段,当第一次请求时,构建或恢复应用程序视图。 对于其他后续请求,执行其他操作,如应用请求参数值,对组件值执行转换和验证,受托管的bean将使用组件值进行更新,并调用应用程序逻辑。
执行阶段被进一步分成以下子阶段。
恢复视图阶段
应用请求值阶段
流程验证阶段
更新模型值阶段
调用应用阶段
渲染响应阶段
1、恢复视图阶段
当客户端请求一个JavaServer Faces页面时,JavaServer Faces实现开始恢复视图阶段。 在此阶段,JSF将视图中的组件构建为请求页面,线性事件处理程序和验证器的视图,并将视图保存在FacesContext实例中。
如果对该页面的请求是回发,那么与该页面相对应的视图已经存在于FacesContext实例中。 在此阶段,JavaServer Faces实现通过使用保存在客户端或服务器上的状态信息来还原视图。
2、应用请求值阶段
在此阶段,在回发请求期间恢复组件树。 组件树是表单元素的集合。树中的每个组件通过使用其decode(processDecodes())方法从请求参数中提取其新值。 之后,该值将本地存储在每个组件上。
如果任何解码方法或事件侦听器在当前FacesContext实例上调用了renderResponse方法,则JavaServer Faces实现将跳过“渲染响应”阶段。
如果任何事件在此阶段已排队,则JavaServer Faces实现将事件广播到有兴趣的监听器。
如果应用程序需要重定向到其他Web应用程序资源或生成不包含任何JavaServer Faces组件的响应,则可以调用FacesContext.responseComplete()方法。
如果当前请求被识别为部分请求,则从FacesContext检索部分上下文,并应用部分处理方法。
3、流程验证阶段
在此阶段,JavaServer Faces通过使用其validate()方法来处理在组件上注册的所有验证器。 它检查指定验证规则的组件属性,并将这些规则与为组件存储的本地值进行比较。 JavaServer Faces还完成了没有将immediate属性设置为true的输入组件的转换。
如果任何验证方法或事件侦听器在当前FacesContext上调用了renderResponse方法,则JavaServer Faces实现将跳过“渲染响应”阶段。
如果应用程序需要重定向到不同的Web应用程序资源或生成不包含任何JavaServer Faces组件的响应,则可以调用FacesContext.responseComplete方法。
如果事件在此阶段已排队,则JavaServer Faces实现将它们广播给有兴趣的监听器。
如果当前请求被识别为部分请求,则从FacesContext检索部分上下文,并应用部分处理方法。
4、更新模型值阶段
确保数据有效后,它遍历组件树,并将相应的服务器端对象属性设置为组件的本地值。 JavaServer Faces实现只更新输入组件的value属性指向bean属性。 如果本地数据无法转换为bean属性指定的类型,生命周期将直接前进到“渲染响应”阶段,以便重新呈现页面并显示错误。
如果任何updateModels方法或任何监听器在当前FacesContext实例上调用了renderResponse()方法,则JavaServer Faces实现将跳过“渲染响应”阶段。
如果应用程序需要重定向到其他Web应用程序资源或生成不包含任何JavaServer Faces组件的响应,则可以调用FacesContext.responseComplete()方法。
如果任何事件在此阶段已排队,JavaServer Faces实现将它们广播到有兴趣的监听器。
如果当前请求被识别为部分请求,则从FacesContext检索部分上下文,并应用部分处理方法。
5、调用应用阶段
在此阶段,JSF处理应用程序级事件,例如提交表单或链接到另一个页面。
现在,如果应用程序需要重定向到其他Web应用程序资源或生成不包含任何JSF组件的响应,则可以调用FacesContext.responseComplete()方法。
之后,JavaServer Faces实现将控制转移到“渲染响应”阶段。
6、渲染响应阶段
这是JSF生命周期的最后阶段。 在此阶段,JSF将构建视图并将权限委托给相应的资源来呈现页面。
如果这是初始请求,则页面上表示的组件将被添加到组件树中。
如果这不是初始请求,组件已经添加到树中,不需要再添加。
如果请求是回应,并且在应用请求值阶段,过程验证阶段或更新模型值阶段期间遇到错误,则在此阶段将再次呈现原始页面。
如果页面包含h:message或h:messages标签,页面上会显示任何排队的错误消息。
在渲染视图的内容之后,保存响应的状态,以便后续请求可以访问它。 恢复视图阶段可以使用保存的状态。
二、 渲染阶段
在此阶段,请求的视图作为对客户端浏览器的响应。 视图渲染是以HTML或XHTML生成输出的过程。 所以,用户可以在浏览器看到它。
在渲染过程中采取以下步骤。
当客户端对index.xhtml网页进行初始请求时,编译应用程序。
应用程序在编译后执行,并为应用程序构建一个新的组件树,并放置在FacesContext中。
使用由EL表达式表示的组件和与其关联受托管bean属性填充组件树。
基于组件树。 建立了新的视图。
该视图作为响应呈现给请求客户端。
组件树被自动销毁。
在后续请求中,重新构建组件树,并应用已保存的状态。
(免责声明:内容及图片来源于公开网络,若涉及侵权联系尽快删除!)
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有帐号?
立即注册
x
回复
使用道具
举报
发布主题
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
返回顶部
返回列表