`

display dynamic or static images

阅读更多
How can we display dynamic or static images that can be provided as an array of bytes
Added by tm_jee, last edited by Ted Husted on Jul 22, 2006  (view change)

To display an image represented as an array of bytes

  • Reference an Action for the image src attribute
  • Provide a helper method on the Action to return an array of bytes
  • Provide a Result Type that renders the array to the response

Reference an Action

MyAction.jsp
<img src="/myWebAppContext/myAction.do" />

Provide Helper Methods

MyAction.java
public class MyAction extends ActionSupport {
  public String doDefault() {
    return "myImageResult";
  }

  public byte[] getMyImageInBytes() { .... }

  public String getMyContentType() { ... }
  public String getMyContentDisposition() { ... }
  public int getMyContentLength() { .... }
  public int getMyBufferSize() { ... }

}

Provide a Custom Result Type

struts.xml
<struts>

    ...
    <result-types>
        <result-type name="myBytesResult" class="MyBytesResult" />
    </result-types>
    ...
    <action name="myAction" class="MyAction">
        <result name="myImageResult" type="myBytesResult">
            <param name="contentType">${myContentType}</param>
            <param name="contentDisposition">${myContentDisposition}</param>
            <param name="contentLength">${myContentLength}</param>
            <param name="bufferSize">${myBufferSize}</param>
        <result>
    </action>
    ...

</struts>
MyBytesResult.java
public class MyBytesResult implements Result {

	public void execute(ActionInvocation invocation) throws Exception {

		MyAction action = (MyAction) invocation.getAction();
		HttpServletResponse response = ServletActionContext.getResponse();

                response.setContentType(action.getContentType());
		response.setContentLength(action.getContentLength());

		response.getOutputStream().write(action.getImageInBytes());
		response.getOutputStream().flush();
	}

}
 
From : http://struts.apache.org/2.x/docs/how-can-we-display-dynamic-or-static-images-that-can-be-provided-as-an-array-of-bytes.html
评论
1 楼 wenquan4004 2009-04-02  
我也用这个做了一个MyBytesResult但是报OutputStream已经被call了
我是这么做的我的一个java类里有多个action,其中一个action处理图片,其它处理数据
程序是先请求一个action然后返回jsp页面,在该页面上有个<img src="请求图片处理action">
但是总是报response.getOutputStream()已经被调用了

相关推荐

    Fast Bilateral Filtering for the Display of High-Dynamic-Range Image

    在由Fredo Durand和Julie Dorsey发表的研究论文《Fast Bilateral Filtering for the Display of High-Dynamic-Range Image》中,提出了一种名为快速双边滤波(Fast Bilateral Filtering)的技术,用于HDR图像的色调...

    IMAGE-DISPLAY.zip_images

    这个名为"IMAGE-DISPLAY.zip_images"的压缩包显然包含了关于如何在MATLAB环境中展示图像的详细文档,特别是“IMAGE DISPLAY.doc”文件。接下来,我们将深入探讨MATLAB中处理和显示图像的关键知识点。 首先,MATLAB...

    C# WPF绘图控件Dynamic Data Display简单使用

    在本文中,我们将深入探讨如何在C#的WPF(Windows Presentation Foundation)环境中使用Dynamic Data Display(D3)库进行图形绘制。D3是一个强大的数据可视化库,它提供了丰富的功能来帮助开发者创建交互式、可定制...

    yolov8系列--Display predicted Video, Images and webcam using.zip

    本压缩包文件"yolov8系列--Display predicted Video, Images and webcam using.zip"包含了展示如何使用YOLOv8在视频、图像和网络摄像头流上进行预测的资源。 1. YOLOv8 简介: YOLOv8是YOLO系列的一个版本,它通过...

    HDR Static Metadata Extensions(HDR标准)

    This standard specifies static High Dynamic Range (HDR) metadata extensions using an additional InfoFrame and EDID CTA data block, replacing previously reserved codes in Table 5 and Table 46 of CTA-...

    Display_Port_1.2.zip_Display 1.2_DisplayPort1.2_display port_dis

    DisplayPort 1.2是显示接口技术的一种高级版本,它由视频电子标准协会(VESA)制定并发布,旨在提供高带宽、无压缩的数字视频和音频传输。相较于其前身DisplayPort 1.1a,DisplayPort 1.2在多个方面有了显著提升,使...

    algorighm of dynamic display

    图像遮罩技术是一种利用逻辑运算(如AND、OR、NOT等)来修改图像数据的方法。在多扫描束动态显示中,它可以用来选择哪些像素应该亮起,哪些像素应该熄灭。这种方法的好处在于: - 减少了对外部存储器的需求。 - 提高...

    Digital-display-dynamic-data.zip_位赋值

    在本主题"Digital-display-dynamic-data.zip_位赋值"中,我们主要关注8位数码管如何通过动态扫描和位赋值来实现数字的连续显示。 动态扫描是数码管显示的一种常见技术,用以节省硬件资源和降低功耗。在8位数码管中...

    dynamic data display 源代码

    动态数据显示(Dynamic Data Display,简称DDD)是一个用于.NET Framework的开源库,专门设计用于创建交互式的、可自定义的数据可视化图表。这个库提供了一系列强大的工具,帮助开发者创建出直观且响应迅速的数据...

    Android板实现双屏显示,DisplayManager和Display的使用

    本篇文章将深入探讨如何使用Android原生的`DisplayManager`和`Display`类来实现这一功能。 首先,我们要理解`DisplayManager`和`Display`这两个核心概念。`DisplayManager`是Android提供的一个服务接口,它允许应用...

    SEG_static.rar_SEG7_Static_Display_vhdl

    总结,"SEG7_Static_Display_vhdl"实验是一个很好的实践项目,它涵盖了数字逻辑、译码器设计和VHDL编程等多个关键知识点。通过这个实验,我们可以加深对数字系统设计的理解,同时提升硬件描述语言的编程技能。在实际...

    Dynamic Tracing Guide PDF

    Display and examine trace data from the live system or a crash dump DTrace allows illumos developers and administrators to: Implement custom scripts that use the DTrace facility Implement layered ...

    VESA Proposed DisplayPort (DP) Standard.pdf

    connections, such as interfaces within a PC or monitor, and external display connections. Suitable external display connections include interfaces between a PC and monitor or projector, between a PC ...

    display标签使用

    "display标签使用" display标签是Java Web开发中常用的标签库之一,主要用于数据展示和格式化。下面是display标签的基本用法和常见功能实现。 一、改变空记录提示语言 在display:table标签中,可以使用_display:...

    High Dynamic Range Techniques in Graphics from Acquisition to Display

    High Dynamic Range Techniques in Graphics Eurographics 2005 Tutorial Karol Myszkowski Wolfgang Heidrich

    Thread-dynamic-display-time.zip_Time_dynamic

    总结,"Thread dynamic display time"涉及到的是对多线程程序中线程执行时间的实时监控和分析,这不仅需要理解线程的基本概念,还需要掌握时间动态的测量方法、线程调度原理以及性能优化策略等。通过对这些知识点的...

    Android wifi display功能优化

    Android WiFi Display功能优化 Android WiFi Display功能优化是指在Android系统中,WiFi Display功能的优化建议,以提高该功能的性能和可维护性。本文将从架构图、代码分析和优化建议三个方面对Android WiFi ...

Global site tag (gtag.js) - Google Analytics