2011-11-02 77 views
1

我有一個Liferay portal自定義主題,它通過portal_normal.vm中的一些標準Velocity代碼在左側部分中嵌入Portlet。當我第一次嵌入portlet時,我將屬性portlet-setup-show-borders-default設置爲「false」,這導致portlet在沒有標題欄或其他「chrome」(這不是我想要的)的情況下呈現。Liferay主題中的嵌入式portlet - 如何強制刷新?

我將屬性值更改爲「true」,但是我發現在已加載portlet的頁面上,它繼續呈現沒有邊框和「chrome」的頁面。但是,如果我加載了其他頁面,那麼portlet將正確呈現。

如何強制Liferay在我訪問的第一頁上正確重新繪製portlet?我無法在Admin GUI中找到任何可能會強制某些緩存副本被清除的內容(我更喜歡這一點),而且很多Google搜索功能也沒有顯示任何可行的功能。我發現有一個看起來像它可能工作的文章(http://www.liferay.com/community/forums/-/message_boards/message/772138),但Artur在第二條評論中發佈的代碼對於一般的portlet,只是Web Content portlet和文章不起作用。

有沒有其他人遇到這個,並找到了解決辦法?請儘快通知我!

在此先感謝

- 喬 -

回答

2

終於找到我需要的Liferay的社區論壇網站上的信息,但它需要一個非常具體搜索詞在谷歌找到它。在這裏分享信息,讓其他人更容易(我希望)。

當一個portlet嵌入到主題中時,爲該主題加載的每個頁面都會將VelocityPortletPreferences設置存儲在數據庫的PortletPreferences表中。即使您更改了主題的模板代碼內的首選項設置,Liferay也會忽略該更改並使用數據庫中存儲的首選項值。清除這些存儲值的唯一方法是刪除PortletPreferences表中與portlet ID相對應的行。

delete from PortletPreferences where portletId = '<your-portlet-id-here>' 

一旦你做到了這一點(不需要Liferay的服務重新啓動),則可以重新加載了未正常顯示的網頁,他們現在會拿起更新偏好設置。

請注意,重新加載頁面後,更新後的首選項將再次存儲在數據庫中,因此如果需要進行其他更改,則必須再次刪除該portlet的行。