2014-08-28 119 views
2

我在xpages中使用了一些<xp:this.facets>元素。xpages將html文件添加到facets中

我已經將一個html文件導入到我的資源中。我想用這個方面來顯示這個html文件,但我沒有取得任何成功。

他們正在使用的XPAGE因爲我想顯示正確的安排無數的佈局。

對於自定義的控制,我沒有使用這樣的:

<xc:layout> 
      <xp:this.facets> 
       <xc:view_all xp:key="facet_1"></xc:view_all> 

      </xp:this.facets> 
    </xc:layout> 

我該怎麼辦我test.html是一回事嗎?

+0

是否要將html標記粘貼到方面內?或只是插入文件的內容(即從文件資源)? – 2014-08-28 06:51:12

+0

我想這個文件的內容是可以的。 – 2014-08-28 06:55:20

回答

1

這已被斯文哈塞爾巴赫解釋說:

http://hasselba.ch/blog/?p=752

在最基礎層面上,你可以轉儲文件資源的內容(從你的資源\文件中的NSF數據庫中)爲計算文本並將其作爲一個方面。

<xc:layout> 
    <xp:this.facets> 
     <xp:text 
      escape="false" 
      xp:key="facet_1" 
      id="computedField1"> 
       <xp:this.value><![CDATA[#{javascript: 
        var url = "/test.html"; 
        var data = facesContext.getExternalContext(). 
         getResourceAsStream(url); 
        var txt = ""; 
        while(data.available()){ 
         txt += @Char(data.read()); 
        } 
        txt}]]> 
       </xp:this.value> 
     </xp:text> 
    </xp:this.facets> 
</xc:layout> 

一個簡單的說明,在JSF生命週期中,此代碼將運行多次。所以我建議把它放到一個SSJS庫中,並根據你的情況在viewScope/applicationScope變量中緩存一次。否則在循環過程中會浪費一些內存和CPU。

+0

是的,的確,我必須等待幾秒鐘,直到顯示內容。 – 2014-08-28 07:53:50

+0

這取決於文件的大小。我會使用Java bean進行這種緩存。 – 2014-08-28 07:54:59

相關問題