情景:
1.图片和工程不在一个盘符下。
2.图片不能放到工程下。
在JSP 文件中<img src="D:temp/12345.jpg"/>
这样不能显示图片。
因为,JSP页面在引图片的时候是在页面解析的路径是:
<img src="http://localhost:8080/a/images/1.jpg">
。
也就是说JSP在引图片的时候是先去你的工程目录下找的。
所以如果要在JSP中引入其他盘符的图片。
使用虚拟路径来配置:
在tomcat下的conf/server.xml中增加一个代码 在<Host></Host>
中间
如下:
<!--增加的--path="/虚拟名" docBase="虚拟路径" ->
<Context path="/upload" docBase="D:\temp\1\" reloadable="true"></Context>
图片存放路径为: D:\temp\1\
/**
* struts2 显示图片 action 方法
*/
public String view(){
// 得到工程保存图片的路径
//String root = //ServletActionContext.getServletContext().getRealPath("/upload");
String root = "D:\\temp\\1";
File dir = new File(root);
//目录下文件
File[] files = dir.listFiles();
List<String> list = new ArrayList<String>();
for (File file : files) {
list.add("/upload/" +file.getName());
}
//发送
ActionContext.getContext().put("list", list);
return SUCCESS;
}
其中 list.add("/upload/" +file.getName());
中的 /upload/
表示要访问项目下的路径 ,在Tomcat中已经配置。
页面显示图片:
<s:iterator value="list" >
<img src="<s:property />" width="200px" height="200px">
</s:iterator>
页面可以正常显示 。