1
我正在使用Tapestry開發我的第一個項目,我即將完成,除了圖像..使用Tapestry5在我的應用程序之外顯示圖像
我想要什麼?我只需要在我的應用程序之外顯示一個圖像,例如: /home/app/images/image.jpg
我嘗試了什麼?我一直在「谷歌搜索」並閱讀Tapestry5論壇,我發現了這個:http://wiki.apache.org/tapestry/Tapestry5HowToStreamAnExistingBinaryFile
我按照步驟創建了類,但是我需要顯示嵌入在另一個頁面上的圖像(所以我不能使用ImagePage),我試過這個:
頁面java類
public StreamResponse getImage() {
InputStream input = DetallesMultimedia.class
.getResourceAsStream("/home/santi/Escritorio/evolution-of-mario.jpg"); //On application, i will retrieve this from DB
return new JPEGInline(input,"hellow");
}
頁面模板
...
<img src="${image}" alt:image/>
...
或
...
${image}
...
很可能,這不起作用我真的不知道怎麼辦呢。我讀到了關於在事件上加載圖像的事情(在上面的HowTo中,就像在上面的HowTo中所說的那樣返回OutputStream)但是我的英語非常糟糕(我相信你已經注意到了)我不明白我怎麼能去做。
你能幫幫我嗎?
謝謝大家。
嗨joostschouten,感謝你回答。我有一個問題:這意味着什麼「String uri = empty_profile_pic.toClientURL(); 」?此外,我做錯了,因爲圖像不加載,我得到了異常(方法es.udc.turismo.web.pages.pdi.multimedia.DetallesMultimedia.onActivate(長),參數#1:強制的picUrl類型java.lang.Long(通過字符串 - >長))。看來我不能用onActivate方法在頁面中顯示圖像:S。 – Santi
該行是一個錯誤。我從我自己的頁面上獲取了需要的代碼。我現在從我的答案中刪除了它。至於你的例外情況,你可能在你的onActivate方法中有一個Long參數,在那裏你用一個字符串「picUrl」激活頁面。 Tapestry無法弄清Long「picUrl」應該是什麼,並引發異常。刪除論點或提供適當的強制。 – joostschouten
再次感謝你,joostschouten。如果我執行強制,我會修正什麼?我的意思是,我需要onActivation在我的數據庫中加載其他數據。我無法刪除onActivation,如果我執行強制措施,我該怎麼辦?將字符串映射到0?無論如何,我認爲我必須閱讀更多關於脅迫的概念。謝謝:) – Santi