看来您需要
<s:url可以在
<img标签中替换为
href属性的from 动作,以检索图像,类似于在
/images文件夹中使用静态图像。
叫它
ImageAction。这是将响应写出的简单操作。要使用它,您需要将带有图像的文件放入会话中。因为图像是由单独的线程检索的。在execute方法中写
@Action(value = "image", interceptorRefs = @InterceptorRef("basicStack"))public class ImageAction extends ActionSupport {public String execute() {从会话中获取文件
File file = session.get("file");那么你需要阅读文件
FileInputStream fis = new FileInputStream(file);byte[] data = new byte[fis.available()];fis.read(data);fis.close();
然后写出回应
response.setContentType("image/png");BufferedImage bi;OutputStream os = response.getOutputStream();bi = ImageIO.read(new ByteArrayInputStream(data));ImageIO.write(bi, "PNG", os);os.flush();并返回NONE结果,因为此操作仅写入响应
return NONE;}
做完了
然后在从您的动作转发的JSP中使用
<img src="<s:url action="image"/>"/>。如果需要添加路径,则在URL中的操作和属性上使用名称空间注释。
我觉得您熟悉Struts2中的会话概念,即如何将会话注入您的动作并在其中映射对象。返回结果之前,请在操作中映射文件对象。
祝好运。



