2013-05-31 77 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