1. iframe所引用的页面类实现IExternalPage接口和activateExternalPage方法
2. 持有iframe的页面类中实现一个getIframeRenderer方法:
public ILinkRenderer getIframeRenderPage() {
return new ILinkRenderer() {
public void renderLink(IMarkupWriter writer, IRequestCycle cycle,
ILinkComponent linkComponent) {
writer.begin("iframe");
Iterator i = linkComponent.getBindingNames().iterator();
while (i.hasNext()) {
String name = (String) i.next();
IBinding b = linkComponent.getBinding(name);
if (b instanceof LiteralBinding
&& !"src".equalsIgnoreCase(name)
&& !"page".equalsIgnoreCase(name)) {
writer.attribute(name, b.getObject().toString());
}
}
ILink l = linkComponent.getLink(cycle);
writer.attribute("src", l.getURL());
writer.end("iframe");
}
};
}
3. 在持有iframe的页面中赋予iframe标记写法如下:
<iframe src="#" border=2 jwcid="@ExternalLink" page="Test" parameters="ognl:'a','b'}" renderer="ognl:iframeRenderer"></iframe>
4、在 iframe中的页面要实现IExternalPage接口 ,并且必须实现public void activateExternalPage(Object[] parameters, IRequestCycle cycle) {
// TODO Auto-generated method stub
}方法 这个方法是接收parameters中传过来的参数。