簡體   English   中英

從struts2操作變量中的路徑以jsp顯示圖像

[英]display image in jsp from path in struts2 action variable

我有一個struts2動作,該動作具有要在jsp頁面中顯示的圖像的變量。 當我使用以下命令顯示變量的值時:

<s:property value="variableName" />

我得到圖像文件的絕對路徑。

但是當我嘗試以下操作時:

<img src='<s:property value="variableName" />' />

我在那里一片空白。 我什至嘗試了以下方法:

<img src="${variableName}" />

編輯:我做了一些思考。 所設置圖像的路徑在tomcat的temp文件夾中。 是因為我無法訪問它嗎?

沒有任何作用。 這可能是什么問題?

img標簽的src必須包含絕對路徑,然后只有它才能指向客戶端計算機上的圖像文件。

如果variableName包含這樣的絕對路徑

http://localhost/images/pics/icon.gif

img將從服務器找到圖像。 因此始終可用,因此您可以使用它。

<img src="${variableName}"/>

如果variableName是相對路徑,即; 服務器可以識別的內容。

/images/pics/icon.gif

上面的路徑將由服務器標識,但不會從遠程計算機上標識。 在那種情況下,你需要這個

<img src="<c:url value=variableName/>" />

在進行Web開發時,請始終牢記服務器上下文中包含的內容以及傳遞給客戶端瀏覽器的內容。 如果您按照建議進行操作,則將呈現以下內容並將其發送給客戶端:

<img src="c:\my_local_directory\some_image.jpg"></img>

這對於客戶端瀏覽器毫無意義,它肯定會在其他計算機上執行。

您應該將圖像存儲在應用服務器可以顯示圖像的位置,並始終提供相對於Web應用程序的路徑。 例如,如果您直接在my-app.war文件中存儲some_image.jpg,則類似於:

<img src="/my-app/some_image.jpg"></img>

將始終有效。 如果您需要優化該圖像(想象之前需要在其上加水印)或需要從某個位置(數據庫中的BLOB或類似的東西)恢復其內容,則需要執行一個全新的操作它,例如:

<img src="/my-app/ImageAction.action?image=some_image"></img>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM