我讨厌我回答自己的问题,但我确实找到了一个没有很好记录的潜在解决方案,并且在典型的 SAP 时尚中使用了已弃用的方法。所以这可能是一个比 Eric 建议的稍微不那么肮脏的黑客攻击。我是通过一个不相关的 SDN 论坛帖子找到的。
基本上,您深入到请求对象并收集 PortalNode。一旦你有了它,你就要求它提供一个 IPortalResponse 的值。此对象可以转换为 PortalHtmlResponse。该对象有一个不推荐使用的名为 getHtmlDocument 的方法。使用该方法,您可以使用一些 Html 镜像对象来获取头部并插入新链接。
样本:
IPortalNode node = request.getNode().getPortalNode();
IPortalResponse resp = (IPortalResponse) node.getValue(IPortalResponse.class.getName());
if (resp instanceof PortalHtmlResponse) {
PortalHtmlResponse htmlResp = (PortalHtmlResponse) resp;
HtmlDocument doc = htmlResp.getHtmlDocument();
HtmlHead myHead = doc.getHead();
HtmlLink cssLink = new HtmlLink("http://myserver.com/css/mycss.css");
cssLink.setType("text/css");
cssLink.setRel("stylesheet");
myHead.addElement(cssLink);
}