tapestry中使用iframe(和frame不同)

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中傳過來的參數。
發佈了67 篇原創文章 · 獲贊 1 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章