Class MultiPartRequestWrapper
java.lang.Object
jakarta.servlet.ServletRequestWrapper
jakarta.servlet.http.HttpServletRequestWrapper
org.apache.struts2.dispatcher.StrutsRequestWrapper
org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper
- All Implemented Interfaces:
jakarta.servlet.http.HttpServletRequest
,jakarta.servlet.ServletRequest
Parse a multipart request and provide a wrapper around the request. The parsing implementation used
depends on the struts.multipart.parser setting. It should be set to a class which
extends MultiPartRequest
.
The struts.multipart.parser property should be set to jakarta for the Jakarta implementation, and cos for the Jason Hunter implementation.
The files are uploaded when the object is instantiated. If there are any errors they are logged using
addError(LocalizedMessage)
. An action handling a multipart form should first check hasErrors()
before doing any other processing.
An alternate implementation, PellMultiPartRequest, is provided as a plugin.
-
Field Summary
FieldsFields inherited from interface jakarta.servlet.http.HttpServletRequest
BASIC_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH, FORM_AUTH
-
Constructor Summary
ConstructorsConstructorDescriptionMultiPartRequestWrapper
(MultiPartRequest multiPartRequest, jakarta.servlet.http.HttpServletRequest request, String saveDir, LocaleProvider provider) MultiPartRequestWrapper
(MultiPartRequest multiPartRequest, jakarta.servlet.http.HttpServletRequest request, String saveDir, LocaleProvider provider, boolean disableRequestAttributeValueStackLookup) Process file downloads and log any errors. -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addError
(LocalizedMessage anErrorMessage) Adds an error message when it isn't already added.protected LocalizedMessage
buildErrorMessage
(Throwable e, Object[] args) void
cleanUp()
String[]
getContentTypes
(String name) Get an array of content encoding for the specified input field name or null if no content type was specified.Returns a collection of any errors generated when parsing the multipart request.String[]
getFileNames
(String fieldName) Get a String array of the file names for uploaded filesGet an enumeration of the parameter names for uploaded filesGet aFile
for the given input field name.String[]
getFileSystemNames
(String fieldName) Get the filename(s) of the file(s) uploaded for the given input field name.getParameter
(String name) String[]
getParameterValues
(String name) boolean
Returns true if any errors occured when parsing the HTTP multipart request, false otherwise.protected Enumeration<String>
mergeParams
(Enumeration<String> params1, Enumeration<String> params2) Merges 2 enumeration of parameters as one.protected void
setLocale
(jakarta.servlet.http.HttpServletRequest request) Methods inherited from class org.apache.struts2.dispatcher.StrutsRequestWrapper
getAttribute
Methods inherited from class jakarta.servlet.http.HttpServletRequestWrapper
authenticate, changeSessionId, getAuthType, getContextPath, getCookies, getDateHeader, getHeader, getHeaderNames, getHeaders, getHttpServletMapping, getIntHeader, getMethod, getPart, getParts, getPathInfo, getPathTranslated, getQueryString, getRemoteUser, getRequestedSessionId, getRequestURI, getRequestURL, getServletPath, getSession, getSession, getTrailerFields, getUserPrincipal, isRequestedSessionIdFromCookie, isRequestedSessionIdFromURL, isRequestedSessionIdValid, isTrailerFieldsReady, isUserInRole, login, logout, newPushBuilder, upgrade
Methods inherited from class jakarta.servlet.ServletRequestWrapper
getAsyncContext, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequest, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, isWrapperFor, isWrapperFor, removeAttribute, setAttribute, setCharacterEncoding, setRequest, startAsync, startAsync
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface jakarta.servlet.ServletRequest
getAsyncContext, getAttributeNames, getCharacterEncoding, getContentLength, getContentLengthLong, getContentType, getDispatcherType, getInputStream, getLocalAddr, getLocale, getLocales, getLocalName, getLocalPort, getProtocol, getProtocolRequestId, getReader, getRemoteAddr, getRemoteHost, getRemotePort, getRequestDispatcher, getRequestId, getScheme, getServerName, getServerPort, getServletConnection, getServletContext, isAsyncStarted, isAsyncSupported, isSecure, removeAttribute, setAttribute, setCharacterEncoding, startAsync, startAsync
-
Field Details
-
LOG
protected static final org.apache.logging.log4j.Logger LOG
-
-
Constructor Details
-
MultiPartRequestWrapper
public MultiPartRequestWrapper(MultiPartRequest multiPartRequest, jakarta.servlet.http.HttpServletRequest request, String saveDir, LocaleProvider provider, boolean disableRequestAttributeValueStackLookup) Process file downloads and log any errors.- Parameters:
multiPartRequest
- Our MultiPartRequest objectrequest
- Our HttpServletRequest objectsaveDir
- Target directory for any files that we saveprovider
- locale providerdisableRequestAttributeValueStackLookup
- disable the request attribute value stack lookup
-
MultiPartRequestWrapper
public MultiPartRequestWrapper(MultiPartRequest multiPartRequest, jakarta.servlet.http.HttpServletRequest request, String saveDir, LocaleProvider provider)
-
-
Method Details
-
setLocale
protected void setLocale(jakarta.servlet.http.HttpServletRequest request) -
buildErrorMessage
-
getFileParameterNames
Get an enumeration of the parameter names for uploaded files- Returns:
- enumeration of parameter names for uploaded files
-
getContentTypes
Get an array of content encoding for the specified input field name or null if no content type was specified.- Parameters:
name
- input field name- Returns:
- an array of content encoding for the specified input field name
-
getFiles
Get aFile
for the given input field name.- Parameters:
fieldName
- input field name- Returns:
- a File[] object for files associated with the specified input field name
-
getFileNames
Get a String array of the file names for uploaded files- Parameters:
fieldName
- Field to check for file names.- Returns:
- a String[] of file names for uploaded files
-
getFileSystemNames
Get the filename(s) of the file(s) uploaded for the given input field name. Returns null if the file is not found.- Parameters:
fieldName
- input field name- Returns:
- the filename(s) of the file(s) uploaded for the given input field name or null if name not found.
-
getParameter
- Specified by:
getParameter
in interfacejakarta.servlet.ServletRequest
- Overrides:
getParameter
in classjakarta.servlet.ServletRequestWrapper
- See Also:
-
ServletRequest.getParameter(String)
-
getParameterMap
- Specified by:
getParameterMap
in interfacejakarta.servlet.ServletRequest
- Overrides:
getParameterMap
in classjakarta.servlet.ServletRequestWrapper
- See Also:
-
ServletRequest.getParameterMap()
-
getParameterNames
- Specified by:
getParameterNames
in interfacejakarta.servlet.ServletRequest
- Overrides:
getParameterNames
in classjakarta.servlet.ServletRequestWrapper
- See Also:
-
ServletRequest.getParameterNames()
-
getParameterValues
- Specified by:
getParameterValues
in interfacejakarta.servlet.ServletRequest
- Overrides:
getParameterValues
in classjakarta.servlet.ServletRequestWrapper
- See Also:
-
ServletRequest.getParameterValues(String)
-
hasErrors
public boolean hasErrors()Returns true if any errors occured when parsing the HTTP multipart request, false otherwise.- Returns:
- true if any errors occured when parsing the HTTP multipart request, false otherwise.
-
getErrors
Returns a collection of any errors generated when parsing the multipart request.- Returns:
- the error Collection.
-
addError
Adds an error message when it isn't already added.- Parameters:
anErrorMessage
- the error message to report.
-
mergeParams
Merges 2 enumeration of parameters as one.- Parameters:
params1
- the first enumeration.params2
- the second enumeration.- Returns:
- a single Enumeration of all elements from both Enumerations.
-
cleanUp
public void cleanUp()
-