我有一个struts2 Action ,它有一个图像变量,我想在jsp页面中显示该图像。当我使用以下命令显示变量的值时:
<s:property value="variableName" />
我得到了图像文件的绝对路径。
但是当我尝试以下操作时:
<img src='<s:property value="variableName" />' />
我那里有一个空白。我什至尝试过以下方法:
<img src="${variableName}" />
编辑:我做了一些思考。设置的镜像路径在tomcat的temp文件夹中。是因为这个原因我无法访问它吗?
没有效果。这可能是什么问题?
最佳答案
在进行 Web 开发时,请始终牢记服务器上下文中的内容以及传输到客户端浏览器的内容。如果您按照您的建议操作,您将呈现并向客户端发送如下内容:
<img src="c:\my_local_directory\some_image.jpg"></img>
这对客户端浏览器来说没有任何意义,它肯定是在其他机器上执行的。
您应该将图像存储在应用程序服务器可以显示它们的位置,并始终给出与您的 Web 应用程序相关的路径。例如,如果您已将 some_image.jpg 直接存储在 my-app.war 文件中,如下所示:
<img src="/my-app/some_image.jpg"></img>
永远有效。如果您需要优化该图像(想象一下您之前需要在其上添加水印)或需要从某个地方(数据库中的 BLOB 或类似的东西)恢复其内容,您将需要一个全新的操作才能执行此操作例如:
<img src="/my-app/ImageAction.action?image=some_image"></img>
关于java - 在 jsp 中显示来自 struts2 操作变量路径的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21672990/