为什么我们在使用AEM时扩展WCMUsePojo类?

时间:2017-06-08 04:15:39

标签: cq5 aem sling

为什么我们在使用AEM时在程序中扩展WCMUsepojo抽象类?

使用这个课程有什么好处?

2 个答案:

答案 0 :(得分:7)

因为在AEM的组件开发机制中,您可能需要一种为组件提供后端逻辑的方法。

那是因为Sightly(当用作渲染脚本语言而不是JSP页面时)是有限的模板语言,它只允许进行小的基本操作,并且繁重的逻辑应该在Java类或server-side JS内进行(使用Sightly脚本中的data-sly-use元素引用)。

这样可以更好地解耦业务逻辑,从而使代码更易于维护,也更容易调试。

为了使用页面上下文或绑定对象抽象组件Java类,以前使用了Adobe的WCMUse,或者使用了Use类的自定义实现。如果您使用AEM 6.1或6.2 WCMUsePojo类(甚至使用Sling Models)。随着AEM 6.3和AEM核心WCM组件的发布,我们发现Adobe已经提倡使用Sling Models作为最佳实践。

答案 1 :(得分:2)

虽然之前的回答给出了一个很好的解释,但我会写一篇自己的简短说明:

  1. 您可以使用java-use-api使用简单的Pojo(不要扩展任何Adobe的类)。但在这种情况下,您将无法轻松访问资源/服务。
  2. 您可以扩展WCMUsePojo以获得使用资源/服务的能力。
  3. 此外,您可以使用Sling Models方式,这将为您提供更大的灵活性。