0

我有一个要求

1) 在现有的 nexus oss 最上面的面板上附加一个 iframe,并且该 iframe 的 url 源必须使用作为查询参数传入的 url 参数生成。所以我创建了一个 java 类来在给定 HttpServeletRequest 对象时生成源 url。一旦我得到 url,我可以将它分配给一个变量并替换 javascript 中的源 url。

所以我打算做的是

public class CtfButtonBar implements NexusIndexHtmlCustomizer {

.
.
.
 @ Override
    public String getPostBodyContribution( Map<String, Object> context )
    {

        return "<script>jQuery(window).load(function () 
{jQuery('body').find('div:first').prepend('<iframe id=\"myframe\" src=\" " 

+  source url + 

"" >  </iframe>')});</script>";
    }

在上面的“源 URL”变量中,这将是我的 iframe 的源属性,需要从 HttpServeletRequest 对象生成。所以基本上我需要这个类中的 HttpServeletRequest 对象。有什么方法可以在此类 CtfButtonBar 中获取此对象?

4

1 回答 1

1

我为您与开发人员进行了交谈,并获得了一些技巧作为解决方案。这是建议

final Request current = Request.getCurrent();
final Reference ref = current.getRootRef() or current.getResourceRef() 

这使用 Restlet,并且由于 Nexus UI 是通过 Restlet 呈现的,因此它应该可以工作 - 至少只要 Nexus UI 使用 Restlet。

您的插件应该依赖于 nexus-restlet1x-plugin,版本与您使用的 Nexus 版本相同。可以通过http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.sonatype.nexus.plugins%22%20AND%20a%3A%22nexus-restlet1x-在 Central 上找到它们的列表插件%22

如前所述,您可以在上述方法中使用该代码,从而访问请求。

于 2013-09-04T16:34:36.103 回答