2010-05-13 35 views
2

小門戶API deos不提供對封閉servlet請求和響應對象的任何引用。我知道這不是與用戶交互的首選模式,但移除所有訪問似乎很嚴格。爲什麼在小門戶中servlet請求不可用API

我知道,對於用戶的portlet驅動交互,您希望使用portlet URLs,並讓portlet容器管理所有的複雜性。

但是,如果您有許多基本顯示相同數據變體的portlet,那麼他們能夠使用封閉請求來驅動數據是有意義的。

我們最終使用Liferay特定的調用來獲取請求,並且這一切似乎都按我們的意願工作。

但是我確實感到內疚。

所以我的問題確實是,是否存在禁止的深層原因,還是僅僅是強制執行A​​PI環境的作者視圖?

回答

3

該portlet並未直接進入Servlet容器,而是所謂的Portlet容器

您應該可以訪問相應的信息,PortletRequest,PortletResponsePortletContext

的原因是相同的portlet的兩個實例可以在同一頁面彼此相鄰運行,但仍然是分離自己的生命週期。門戶網站將爲您「透明化」,並將從servlet世界轉換到portlet世界。 Portlet橋還可用於開發具有非Portlet技術的Portlet(例如JSF)。我同意所有這些通常(非常)複雜的使用(因爲有許多框架和實現可用),但是當你從概念上考慮它的工作原理時,它是quite nice

確切的細節將取決於您選擇開發portlet的技術。但我覺得應該有一種方法可以使用portlet API來做你想做的事情。

+0

是的,看起來portlet規範是爲重量級實現設計的,沒有輕量級選項。 我們有許多portlet可以完成任務,並且可以作爲portlet應用。然而,大多數只是顯示,其中大部分是由頁面請求參數確定的公共模型的視圖。 – 2010-05-13 16:47:33

+0

您可以將模型打包到您在共享類加載器中部署的服務層中。通過這種方式,所有Portlet實例都可以爲模型共享相同的類,並且您可以提供緩存等。只是一個想法。 – ewernli 2010-05-14 07:22:07

相關問題