org.apache.struts.actions
Class DownloadAction
java.lang.Object
|
+--org.apache.struts.action.Action
|
+--org.apache.struts.actions.DownloadAction
- public abstract class DownloadAction
- extends Action
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
Inner 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. |
Method Summary |
int |
copy(java.io.InputStream input,
java.io.OutputStream output)
Copy bytes from an InputStream to an
OutputStream . |
ActionForward |
execute(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.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,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.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, getDataSource, getDataSource, getErrors, getLocale, getMessages, getResources, getResources, getServlet, isCancelled, isTokenValid, isTokenValid, resetToken, saveErrors, saveErrors, saveErrors, saveMessages, saveMessages, saveToken, setLocale, setServlet |
Methods inherited from class java.lang.Object |
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait |
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.
DownloadAction
public DownloadAction()
getStreamInfo
protected abstract DownloadAction.StreamInfo getStreamInfo(ActionMapping mapping,
ActionForm form,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.lang.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:
java.lang.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,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
throws java.lang.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.- Throws:
java.lang.Exception
- if an exception occurs.
copy
public int copy(java.io.InputStream input,
java.io.OutputStream output)
throws java.io.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:
java.io.IOException
- In case of an I/O problem
Copyright © 2000-2005 - The Apache Software Foundation