在我綁定到domDoc數據源的xpage中,我想爲存儲在數據源的richtext字段中的圖像構建預覽機制。設計者和服務器是V 9.0.1。計算圖像資源的URL
附加圖像的名稱作爲數組存儲在viewScope var中,並作爲源重複控制。圖像控件位於重複內部。我還將鏈接控件放置在提供下載文件的方式的圖像旁邊。計算得到的url如下所示:
/dbpath/dbfile.nsf/xsp/.ibmmodres/domino/OpenAttachment/dbpath/dbfile.nsf/docunid/rtBodyField/filename.gif
鏈接的計算工作完美,但圖像從不顯示。相反,Firebug告訴我,圖片的源網址無法解析。而事實上,我看到數據庫路徑部分已呈現的URL的兩倍之前的/xsp/.ibmmodres/domino/OpenAttachment/
部分(但只有一次後吧!):
/dbpath/dbfile.nsf/dbpath/dbfile.nsf/xsp/.ibmmodres/domino/OpenAttachment/dbpath/dbfile.nsf/docunid/rtBodyField/filename.gif
下面是我使用來計算代碼兩個鏈接(使用它的價值屬性)和圖像源的URL(使用其url屬性):
var unid=context.getUrlParameter('documentId');
var p=facesContext.getExternalContext().getRequestContextPath();
return p+'/xsp/.ibmmodres/domino/OpenAttachment'+p+'/'+unid + '/rtBodyFld/'+imgEntry;
這裏是我試過到目前爲止解決奇蹟:
)計算分貝路徑(facesContext...
)beforePageLoad,其存儲在viewScope,然後引用viewScope當構建圖像的源==>相同的結果如上述
b)中所使用的圖像的值屬性,而不是url ==>與上面相同的結果
c)使用標準html <img />
標籤,其中src參數是使用"#{javascript:...}"
構建的,代碼如上==>此工作正常!
因此,我有解決方案下的解決方法),但我仍想了解爲什麼路徑元素加倍只在URL的第一部分和只圖像資源。
編輯:
試圖兩兩件事:
d)拉出所述圖像控制外我重複,然後加入固定(和有效)的文件名,以所計算出的URL ==>相同(壞)導致如上
e)只計算整個url部分,除了圖像文件名beforePageLoad並將其保存在viewScope var ==>這是最奇怪的結果:在圖像的外部觀看範圍包含正確的路徑信息,但在裏面我看到了同樣的壞結果如上。所以看起來,在圖像內的viewScope變量部分改變?
這太奇怪了,我覺得我必須在這裏做出一個非常簡單和愚蠢的錯誤,但那會是什麼?
我已經使用了了,但感謝反正:如果我用了絕對URL(
http://server/path/dbfile.nsf/...
)因此,而不是計算的網址有這樣的待建它會工作。但是我只是在這一刻發現了我的方法中的錯誤(請參閱上面的我自己的答案)... –