Class FileUploadField
- java.lang.Object
-
- org.apache.wicket.Component
-
- org.apache.wicket.MarkupContainer
-
- org.apache.wicket.markup.html.WebMarkupContainer
-
- org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
-
- org.apache.wicket.markup.html.form.FormComponent<java.util.List<FileUpload>>
-
- org.apache.wicket.markup.html.form.upload.FileUploadField
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IGenericComponent<java.util.List<FileUpload>,FormComponent<java.util.List<FileUpload>>>,IMetadataContext<java.io.Serializable,Component>,IFormModelUpdateListener,IFormVisitorParticipant,ILabelProvider<java.lang.String>,IHeaderContributor,IRequestableComponent,org.apache.wicket.util.IHierarchical<Component>,org.apache.wicket.util.io.IClusterable
public class FileUploadField extends FormComponent<java.util.List<FileUpload>>
Form component that corresponds to a <input type="file">. When a FileInput component is nested in aForm, that has multipart == true, its model is updated with theFileUploadfor this component.NOTEThe model of this component is reset with
nullat the end of the request becauseFileUploadinstances do not survive across requests since the input streams they point to will be closed. Because of this, theFileUploadinstance should be processed within the same request as the form containing it was submitted.- Author:
- Eelco Hillenius
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from class org.apache.wicket.markup.html.form.FormComponent
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATOR
-
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING
-
-
Constructor Summary
Constructors Constructor Description FileUploadField(java.lang.String id)FileUploadField(java.lang.String id, IModel<? extends java.util.List<FileUpload>> model)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.util.List<FileUpload>convertValue(java.lang.String[] value)Subclasses should overwrite this if the conversion is not done through the type field and theIConverter.protected booleanforceCloseStreamsOnDetach()The FileUploadField will close any input streams you have opened in its FileUpload by default.FileUploadgetFileUpload()java.util.List<FileUpload>getFileUploads()java.lang.String[]getInputAsArray()Gets the request parameters for this component as strings.booleanisMultiPart()protected voidonComponentTag(ComponentTag tag)Processes the component tag.protected voidonDetach()Clean up at the end of the request.voidupdateModel()Updates this components model from the request, it expects that the object is already converted through the convertInput() call that is called by the validate() method when a form is being processed.-
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, checkRequired, clearInput, convertInput, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputName, getModelValue, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isRequired, isValid, newValidatable, newValidationError, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, setType, shouldTrimInput, trim, updateAutoLabels, updateCollectionModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder
-
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel
-
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
-
Methods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
-
Methods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onBeforeRender, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
-
-
-
-
Constructor Detail
-
FileUploadField
public FileUploadField(java.lang.String id)
- See Also:
Component(String)
-
FileUploadField
public FileUploadField(java.lang.String id, IModel<? extends java.util.List<FileUpload>> model)- Parameters:
id- See Componentmodel- the model holding the uploadedFileUploads
-
-
Method Detail
-
getFileUpload
public FileUpload getFileUpload()
- Returns:
- the first uploaded file if HTML5 <input type="file" multiple /> is used and the browser supports multiple, otherwise returns the single uploaded file.
- See Also:
getFileUploads()
-
getFileUploads
public java.util.List<FileUpload> getFileUploads()
- Returns:
- a list of all uploaded files. The list is empty if no files were selected. It will return more than one files if:
- HTML5 <input type="file" multiple /> is used
- the browser supports multiple attribute
- the user has selected more than one files from the Select file dialog
-
updateModel
public void updateModel()
Description copied from class:FormComponentUpdates this components model from the request, it expects that the object is already converted through the convertInput() call that is called by the validate() method when a form is being processed. By default it just does this:setModelObject(getConvertedInput());
DO NOT CALL THIS METHOD DIRECTLY UNLESS YOU ARE SURE WHAT YOU ARE DOING. USUALLY UPDATING YOUR MODEL IS HANDLED BY THE FORM, NOT DIRECTLY BY YOU.- Specified by:
updateModelin interfaceIFormModelUpdateListener- Overrides:
updateModelin classFormComponent<java.util.List<FileUpload>>
-
getInputAsArray
public java.lang.String[] getInputAsArray()
Description copied from class:FormComponentGets the request parameters for this component as strings.- Overrides:
getInputAsArrayin classFormComponent<java.util.List<FileUpload>>- Returns:
- The values in the request for this component
-
convertValue
protected java.util.List<FileUpload> convertValue(java.lang.String[] value) throws org.apache.wicket.util.convert.ConversionException
Description copied from class:FormComponentSubclasses should overwrite this if the conversion is not done through the type field and theIConverter. WARNING: this method may be removed in future versions. If conversion fails then a ConversionException should be thrown- Overrides:
convertValuein classFormComponent<java.util.List<FileUpload>>- Parameters:
value- The value can be the getInput() or through a cookie- Returns:
- The converted value. default returns just the given value
- Throws:
org.apache.wicket.util.convert.ConversionException- If input can't be converted
-
isMultiPart
public boolean isMultiPart()
- Overrides:
isMultiPartin classFormComponent<java.util.List<FileUpload>>- Returns:
- True if this component encodes data in a multipart form submit
-
onComponentTag
protected void onComponentTag(ComponentTag tag)
Description copied from class:FormComponentProcesses the component tag.- Overrides:
onComponentTagin classFormComponent<java.util.List<FileUpload>>- Parameters:
tag- Tag to modify- See Also:
Component.onComponentTag(ComponentTag)
-
onDetach
protected void onDetach()
Clean up at the end of the request. This means closing all inputstreams which might have been opened from the fileUpload.- Overrides:
onDetachin classFormComponent<java.util.List<FileUpload>>- See Also:
Component.onDetach()
-
forceCloseStreamsOnDetach
protected boolean forceCloseStreamsOnDetach()
The FileUploadField will close any input streams you have opened in its FileUpload by default. If you wish to manage the stream yourself (e.g. you want to use it in another thread) then you can override this method to prevent this behavior.- Returns:
trueif stream should be closed at the end of request
-
-