2016-07-01 12 views
1

在我的新工作中,我不得不使用Adobe AEM及其附帶的一切。但是因爲對我和我的團隊來說,一切都是新的,所以我們有一些主要的困難,理解什麼是最佳實踐以及什麼是正確的「代碼工作流程」。我已經閱讀了所有可能的東西,但是有些東西與我的腦袋混淆了,我無法單獨弄清楚。編碼工作流,在AEM中使用Sightly和Spring MVC進行模型更新

我的問題是: 當我不想使用JCR樹,我只想爲特定用戶(不是真正的CMS組件),我想不出來,我不明白我如何能夠重新加載我的組件信息(基於某個型號)。

所以......想象我有一個有N個汽車的身份驗證的用戶。 我開發了一個組件,顯示其中一輛汽車的信息。選定的汽車可以更改,我想用選定的汽車信息更新組件。

默認情況下,當頁面加載時,加載車號1。

第一個問題:如何把這個第一輛車裝? 我第一次嘗試使用WCMUse擴展來備份組件,並在activate()方法中設置我的默認汽車屬性。

但這似乎奇怪了吧,因爲我不知道我是怎麼此類連接到我的春節控制器...

我讀過ResourceModel可用於這一點,但它會映射它的屬性到我沒有的Car JCR節點。

第二個問題:想象一下,第一個Car被正確加載,我在我的Spring Controller上調用一個方法來更新它。 需要做些什麼來反映汽車信息組件的這種變化?

因此,要完成,我想我的主要兩個問題是:什麼應該是悅目組件模型,以及如何使用更新的信息的組件刷新。

非常感謝。

回答

0

歡迎來到AEM世界席爾瓦,傷心地聽你說強迫在AEM工作。

雖然它可能會出現困難最初,開發商稱職能夠獲得足夠的專業知識在6個月左右與AEM工作。對於Java開發人員來說,很難把事情聯繫起來。

再回到你的問題:如果我理解你,你不用想你存儲在JCR數據和你想打你的Spring控制器獲取數據。

答到第一個問題:理想情況下在AEM數據駐留在JCR,它可能是一個用戶節點,然後Car0,分享幫助...卡恩子節點,這裏所有的汽車信息存儲轎廂節點的屬性上。這完全取決於你想如何構建你的內容。

如果計劃不存儲在JCR您可以創建一個OSGI服務,可以從你的春天控制器獲得數據並傳遞到悅目組件數據。

的回答第二個問題您可以將參數傳遞給您的視覺組件並獲取carN的相關視圖,結帳Passing parameters to sightly

您也可以創建href,它將加載相同的頁面並傳遞一些您可以在您的WCMUse(AEM 6.2中的WCMUsePojo)擴展激活方法中讀取的請求參數。

繼續學習繼續幫助,乾杯!

+0

感謝您的回答!但我仍然有疑問。 :P 讓我解釋一下: 1st)如何從OSGi服務的Spring Controller獲取數據?我需要通過HTTP調用它還是能夠將其注入到我的服務中?我不知道這是否合理,但是,因爲它們都在同一個包中,並且OSGi服務不會成爲我的應用程序上下文的一部分,所以我怎樣才能調用Spring Controller? –

+0

2nd)也許這是我錯誤的主要地方,因爲我習慣於客戶端渲染,而不是服務器端。我的頁面上有多個組件,在這種情況下,我只想看到汽車信息組件的更改,而不是整個頁面。我可以這樣做嗎?只通過更改模型屬性強制更改該特定組件? –

相關問題