2012-09-28 146 views
0

是否可以使用Portlet 2.0 API從門戶網站獲取門戶網站的基本URL(如http://www.thisismyportal.com)?門戶網站的門戶網址

現在我打算手動構建它連接PorletRequest.getServerName(),PortletRequest.getServerPort()PortletRequest.getContextPath();但它似乎有點笨拙(並且沒有PortletRequest.getProtocol()

回答

0

我們在資源環境提供程序中具有這些配置屬性,用於生成用於通過電子郵件發送它們的外部URL。這是具體的解決方案,對我們來說這不是問題,因爲我們還有其他的屬性存儲在那裏,所以我們知道它將在運行時可用。我不知道這是否適合您的需求。這取決於你的情況。 另外,我們僅在登錄時使用https,所以我們始終生成http URL。

希望這會有所幫助。

1

雖然它很笨拙,但它是構建URL的最安全的方式;雖然沒有PortletRequest.getProtocol()方法,但可以使用PortletRequest.isSecure()方法來結束協議。

我建議針對使用基準URL的外部配置,原因有兩個。首先,它將成爲您跨環境維護的另一個配置項目(測試,集成,生產等等)。在配置中,使用當前請求保持完全可重現的東西是沒有什麼理由的。

其次,在某些情況下,可能無法指定特定的URL作爲門戶的「基本URL」。一個例子就是門戶服務器與多個主機或多個主機別名關聯的情況。