1. iframe所引用的页面类实现IExternalPage接口
2. 持有iframe的页面类中实现一个getIframeRenderer方法:
public ILinkRenderer getIframeRenderer() {
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中传过来的参数。
2. 持有iframe的页面类中实现一个getIframeRenderer方法:
public ILinkRenderer getIframeRenderer() {
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中传过来的参数。