2012-09-28 148 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”。一个例子就是门户服务器与多个主机或多个主机别名关联的情况。