Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.struts.actions
Class DownloadAction

    java.lang.Object
      org.apache.struts.action.Action
          org.apache.struts.actions.BaseAction
              org.apache.struts.actions.DownloadAction

    public abstract class DownloadAction

extends BaseAction

This is an abstract base class that minimizes the amount of special coding that needs to be written to download a file. All that is required to use this class is to extend it and implement the `getStreamInfo()` method so that it returns the relevant information for the file (or other stream) to be downloaded. Optionally, the `getBufferSize()` method may be overridden to customize the size of the buffer used to transfer the file.

Since:
  Struts 1.2.6

Nested Class Summary
`static class` | `DownloadAction.FileStreamInfo` A concrete implementation of the `StreamInfo` interface which simplifies the downloading of a file from the disk.
`static class` | `DownloadAction.ResourceStreamInfo` A concrete implementation of the `StreamInfo` interface which simplifies the downloading of a web application resource.
`static interface` | `DownloadAction.StreamInfo` The information on a file, or other stream, to be downloaded by the `DownloadAction`.

Field Summary
`protected static int` | `DEFAULT_BUFFER_SIZE` If the `getBufferSize()` method is not overridden, this is the buffer size that will be used to transfer the data to the servlet output stream.

Fields inherited from class org.apache.struts.actions.BaseAction
`messages`

Fields inherited from class org.apache.struts.action.Action
`servlet`

Constructor Summary
`DownloadAction()`

Method Summary
`int` | `copy(InputStream input, OutputStream output)` Copy bytes from an `InputStream` to an `OutputStream`.
`ActionForward` | `execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)` Process the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it).
`protected int` | `getBufferSize()` Returns the size of the buffer to be used in transferring the data to the servlet output stream.
`protected abstract DownloadAction.StreamInfo` | `getStreamInfo(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)` Returns the information on the file, or other stream, to be downloaded by this action.

Methods inherited from class org.apache.struts.action.Action
`addErrors, addMessages, execute, generateToken, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### DEFAULT_BUFFER_SIZE

    protected static final int DEFAULT_BUFFER_SIZE

  If the `getBufferSize()` method is not overridden, this is the buffer size that will be used to transfer the data to the servlet output stream.

  See Also:
    Constant Field Values

Constructor Detail

### DownloadAction

    public DownloadAction()

Method Detail

### getStreamInfo

    protected abstract DownloadAction.StreamInfo getStreamInfo(ActionMapping mapping,
                                                               ActionForm form,
                                                               HttpServletRequest request,
                                                               HttpServletResponse response)
                                                        throws Exception

  Returns the information on the file, or other stream, to be downloaded by this action. This method must be implemented by an extending class.

  Parameters:
    `mapping` - The ActionMapping used to select this instance.
    `form` - The optional ActionForm bean for this request (if any).
    `request` - The HTTP request we are processing.
    `response` - The HTTP response we are creating.
  Returns:
    The information for the file to be downloaded.
  Throws:
    `Exception` - if an exception occurs.

### getBufferSize

    protected int getBufferSize()

  Returns the size of the buffer to be used in transferring the data to the servlet output stream. This method may be overridden by an extending class in order to customize the buffer size.

  Returns:
    The size of the transfer buffer, in bytes.

### execute

    public ActionForward execute(ActionMapping mapping,
                                 ActionForm form,
                                 HttpServletRequest request,
                                 HttpServletResponse response)
                          throws Exception

  Process the specified HTTP request, and create the corresponding HTTP response (or forward to another web component that will create it). Return an `ActionForward` instance describing where and how control should be forwarded, or `null` if the response has already been completed.

  Overrides:
    `execute` in class `Action`
  Parameters:
    `mapping` - The ActionMapping used to select this instance.
    `form` - The optional ActionForm bean for this request (if any).
    `request` - The HTTP request we are processing.
    `response` - The HTTP response we are creating.
  Returns:
    The forward to which control should be transferred, or `null` if the response has been completed.
  Throws:
    `Exception` - if an exception occurs.

### copy

    public int copy(InputStream input,
                    OutputStream output)
             throws IOException

  Copy bytes from an `InputStream` to an `OutputStream`.

  Parameters:
    `input` - The `InputStream` to read from.
    `output` - The `OutputStream` to write to.
  Returns:
    the number of bytes copied
  Throws:
    `IOException` - In case of an I/O problem

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.