是否可以使用Portlet 2.0 API从Portlet获取Portal基本URL(如http://www.thisismyportal.com)?
现在我打算手动构建它,连接PorletRequest.getServerName()
,PortletRequest.getServerPort()
和PortletRequest.getContextPath()
;但它似乎有点笨拙(而且没有PortletRequest.getProtocol()
)
答案 0 :(得分:1)
虽然它很笨拙,但它是构建URL的最安全的方法;虽然没有PortletRequest.getProtocol()
方法,但您可以使用PortletRequest.isSecure()
方法结束协议。
出于几个原因,我建议使用基本URL的外部配置反对。
首先,它将是您跨环境(测试,集成,生产等)维护的另一个配置项。在配置中,使用当前请求完全可重现的内容几乎没有任何理由。
其次,在某些情况下,可能无法将特定URL指定为门户网站的“基本URL”。一个示例是门户网站服务器与多个主机或多个主机别名相关联的情况。
答案 1 :(得分:0)
我们在资源环境提供程序中拥有这些配置属性,目的是生成用于在电子邮件中发送它们的外部URL。它是特定的解决方案,对我们来说不是问题,因为我们还存储了其他属性,因此我们知道它将在运行时可用。我不知道这是否适合您的需求。这取决于您的情况。 此外,我们仅在登录期间使用https,因此我们始终生成http URL。
希望这有帮助。