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 voidaddError(LocalizedMessage anErrorMessage) Adds an error message when it isn't already added.protected LocalizedMessagebuildErrorMessage(Throwable e, Object[] args) voidcleanUp()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 aFilefor 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) booleanReturns 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 voidsetLocale(jakarta.servlet.http.HttpServletRequest request) Methods inherited from class org.apache.struts2.dispatcher.StrutsRequestWrapper
getAttributeMethods 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, upgradeMethods 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, startAsyncMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods 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 aFilefor 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:
getParameterin interfacejakarta.servlet.ServletRequest- Overrides:
getParameterin classjakarta.servlet.ServletRequestWrapper- See Also:
-
ServletRequest.getParameter(String)
-
getParameterMap
- Specified by:
getParameterMapin interfacejakarta.servlet.ServletRequest- Overrides:
getParameterMapin classjakarta.servlet.ServletRequestWrapper- See Also:
-
ServletRequest.getParameterMap()
-
getParameterNames
- Specified by:
getParameterNamesin interfacejakarta.servlet.ServletRequest- Overrides:
getParameterNamesin classjakarta.servlet.ServletRequestWrapper- See Also:
-
ServletRequest.getParameterNames()
-
getParameterValues
- Specified by:
getParameterValuesin interfacejakarta.servlet.ServletRequest- Overrides:
getParameterValuesin 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()
-