2013-05-31 68 views
0

我正在研究扩展cq5列表组件以创建自定义列表显示(显然)。构造函数接受SlingHttpServletRequest,最小的java文档显示“从指定的请求创建列表”。扩展CQ5列表组件

有人可以解释如何使用这些请求设置来建立列表吗?我应该更改哪些内容以更改列表?某处有更好的文档吗?

+0

你也指什么设置?对话框设置? – Woodifer

回答

2

组件使用请求来检索资源对象。

在init方法中,它检索资源节点的属性。 “listFrom”属性对你最重要,因为它控制着如何创建列表。通过querybuilder,搜索,检索孩子(“孩子”)或标签。 List组件做一个简单的字符串等于找出哪个选项被设置并执行关联的逻辑。

最后返回一个由jsp处理的PageIterator。

+0

托马斯,谢谢。我实际上对代码进行了反编译,并发现了相同的内容。我假定通过使用SlingHttpServletRequest,它以某种方式使用请求变量进行列表调整,但事实证明情况并非如此。 相反,它使用请求来获取列表节点的资源并获取属性。鉴于此,我不确定为什么Day/Adob​​e决定以这种方式构建组件/类,因为传递'currentNode'或类似的东西可能更加明显和直接。 – Rampant

+0

以资源为中心的方法是底层Sling框架中的常见模式和核心概念。一个资源更高层次,然后一个节点。节点是JCR术语,受javax.jcr API限制。 Sling资源带有一些anice附加功能,如适配器框架。 – Thomas

+0

我强烈建议你让自己熟悉Apache Sling框架,CQ5建立在它之上,并大量使用Sling的核心概念。 – Thomas