Lifecycle of JSF and Facelets(第6周)

Posted mapledream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Lifecycle of JSF and Facelets(第6周)相关的知识,希望对你有一定的参考价值。

一:JSF生命周期

  JSF是基于事件驱动。JSF生命周期分为两个主要阶段:执行阶段和渲染阶段。

  具体可分为:

1 重建视图: 建立组件树,如果是首次渲染,则组件树被重置合适的状态;如果是首次渲染,则组件树被创建跳到响应阶段(JSF的组件树结构和DOM是一样的,只不过一个是client一个是server)。

2 应用请求值: 树中的每个组件都能从请求参数中提取的新的值,并把值存储本地.为之后的处理所有与组件相关的事件进入队列,如果某个组件的immediate属性设置为true,那么验证,转换,以及与组件关联的事件在这个阶段被处理(注意:并不是不处理).

3 处理验证: 组件值转换成与之相对应的数据类型。如果转换失败,这一阶段将继续完成所有剩余的转换器,验证和运行所需的检查,但在完成后,跳转到生命周期的Render Response阶段。

如果验证成功,则检查组件上的required 的属性。如果该属性是必须的并且组件中输入了值,那么与之相关的验证程序运行。如果required的属性是必须但又没有输入值,这一阶段完成(所有剩余验证程序还会继续执行),然后生命周期跳跃到Render Response阶段。如果required 属性标识为false,不管组件中有没有输入值,验证过程都不会运行。

在此阶段的末尾,组件的值会被重置为converted后的值,任何的validation或者conversion的错误信息及事件在FaceContext实例中排队,值修改事件开始触发。

验证顺序:converter->required->validator

总而言之,对于一个可以编辑的input组件,在Process Validations阶段遵循以下几个环节:
   a:如果converter失败,required检查和validators都不会执行
   b:如果converter成功,但是required检查失败validators不会执行
   c:如果converter和required都成功,所有的validators都会执行,在多个validators不管哪个validator失败了其余的validator都会继续执行,理由就是开发人员需要知道尽量多的 错  误提示来修改错误。

4 更新模型: 验证组件的本地值移动到模型中,同时本地副本被丢弃。

5 调用应用程序: 执行应用级逻辑(如事件处理程序。

6 呈现响应: 呈现树中的组件。后续请求和Restore View阶段保存状态信息。

二:Facelets

1.Facelets是用来建立JSF应用程序时的一个可供选择的表现层技术。提供了一个强有力的模板化系统,让你使用html样式的模板来定义JSF的表现层,减少了组件整合进表现层时候冗余的代码,而不需要一个web容器。

2.优点

  使用 Facelets 的好处:即组件复合和模板框架,它的核心 是组件,而不是 Servlets 输出。但是采用 Facelets 也有些不足。其中之一就是,对 Facelets 的 IDE 支持极少。

  使用 Facelets API 非常自然和直观。

  如果要使用新的 JSF 组件库,必须有公开这个库的 Facelets 标记库。

摘自:https://www.yiibai.com/jsf/jsf-life-cycle.html

   https://www.cnblogs.com/Blog-Of-ZhouLinHu/p/8854904.html

   https://blog.csdn.net/amwiacel/article/details/14451617




以上是关于Lifecycle of JSF and Facelets(第6周)的主要内容,如果未能解决你的问题,请参考以下文章

MLOps- 吴恩达Andrew Ng Overview of the ML Lifecycle and Deployment Week1 论文等资料汇总

MLOps- 吴恩达Andrew Ng Overview of the ML Lifecycle and Deployment Week1 部署深度学习模型model 实现

JSF Lifecycle

"Blessing of Dimisionality: High Dimensional Feature and Its Efficient Compression for Face Ver

The lifecycle of react

STORM_0009_Lifecycle-of-a-topology/拓扑的生命周期