0

是否可以使用 Portlet 2.0 API 从 Portlet获取 Portal 基本 URL(如http://www.thisismyportal.com )?

现在我打算手动构建它并连接PorletRequest.getServerName(),PortletRequest.getServerPort()PortletRequest.getContextPath(); 但它似乎有点笨拙(而且没有PortletRequest.getProtocol()

4

2 回答 2

1

虽然笨拙,但它是构建 URL 的最安全方法;虽然没有PortletRequest.getProtocol()方法,但您可以使用该方法得出协议PortletRequest.isSecure()

出于几个原因,我建议不要对基本 URL 使用外部配置。

首先,这将是您跨环境(测试、集成、生产等)维护的另一个配置项。几乎没有理由在配置中保留使用当前请求完全可重现的东西。

其次,在某些情况下,可能无法将特定 URL 指定为门户的“基本 URL”。例如,门户网站服务器与多个主机或多个主机别名相关联。

于 2012-10-30T05:54:48.780 回答
0

我们在 Resource Environment Provider 中有这些配置属性,目的是生成外部 URL,以便在电子邮件中发送它们。这是一个特定的解决方案,对我们来说不是问题,因为我们还在那里存储了其他属性,所以我们知道它将在运行时可用。我不知道这是否适合您的需求。这取决于你的场景。另外,我们只在登录时使用 https,所以我们总是生成 http URL。

希望这可以帮助。

于 2012-10-01T09:32:47.813 回答