ADF和JSF有什么区别?

时间:2009-12-04 02:09:55

标签: jsf oracle-adf

我对Oracle的ADF很陌生,想知道ADF和Sun的JSF参考实现有什么区别?

4 个答案:

答案 0 :(得分:35)

作为ADF Faces在几个企业项目中的用户,我对批准的答案略有不同 - ADF Faces可用作您的JSF实现或作为组件库。如果用作JSF实现,则与JSF规范存在差异,例如更长的生命周期(ADFFaces向原始JSF生命周期添加两个步骤)以及用于存储比请求更长但比会话更短的变量的额外范围(即在“进程范围”中) )。

如果最终使用ADF Faces作为JSF实现,则需要注意您正在使用Oracle JSF实现方式(因此您通常只能找到您在Oracle文档中尝试执行的操作的答案,这可能是缺乏的)。

答案 1 :(得分:17)

ADF是一个完整的框架。它由ADF Faces和ADF业务组件组成,使其成为一个完整的框架,模型供控制器查看。使用ADF和JDeveloper,开发人员可以开发应用程序,而无需触及任何Java代码(理论上)。我仍然发现自己使用了一些java,但是我尝试将其限制为尽可能少,因为这是一个迁移项目,其中传入的非Java开发人员将工作。 (是的,他们最终必须学习java。)

答案 2 :(得分:8)

以下是一些未正确实现或在vanilla JSF中完全丢失的内容。

  1. 工具

  2. 与Business层声明性绑定,一直到数据库或Web服务或Content Services。

  3. 可重复使用的任务流,您可以轻松地在页面之间共享用户界面的片段,而不是从头开发每个页面。

  4. 国际

  5. 能够使用webcenter扩展程序提供可自定义和可个性化的页面

  6. 能够从Oracle商业智能或其他来源嵌入高级数据可视化。

  7. ADF完成上述所有操作以及更多内容。

答案 3 :(得分:2)

ADF生命周期是生命周期的重点。

ADF组件可以在其边界内刷新(只有组件才会发生值更改事件而不会干扰其他组件。 当你刷新表时(比如向下滚动以获取(Say get模式))你可以在页面中没有任何验证错误的情况下获取数据。

因为表边界内的数据只能刷新。

在ADF中存在客户端生命周期,如果验证错误,adf将避免不必要的往返。(不知道它是如何di 来自JSF的成员)