|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectwicket.Component
wicket.MarkupContainer
wicket.markup.html.WebMarkupContainer
wicket.markup.html.form.Form
public class Form
Base class for forms. To implement a form, subclass this class, add FormComponents (such as CheckBoxes, ListChoices or TextFields) to the form. You can nest multiple buttons if you want to vary submit behavior. However, it is not necessary to use Wicket's button class, just putting e.g. <input type="submit" value="go"> suffices.
By default, the processing of a form works like this:
FileUploadField components. You can
attach mutliple FileUploadField components for muliple file uploads.
In case of an upload error two resource keys are available to specify error messages: uploadTooLarge and uploadFailed ie in [page].properties [form-id].uploadTooLarge=You have uploaded a file that is over the allowed limit of 2Mb
If you want to have multiple buttons which submit the same form, simply put two or more button components somewhere in the hierarchy of components that are children of the form.
To get form components to persist their values for users via cookies, simply call setPersistent(true) on the form component.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class wicket.Component |
|---|
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor, Component.VisibilityChange |
| Field Summary |
|---|
| Fields inherited from class wicket.Component |
|---|
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER |
| Fields inherited from interface wicket.markup.html.form.IFormSubmitListener |
|---|
INTERFACE |
| Constructor Summary | |
|---|---|
Form(java.lang.String id)
Constructs a form with no validation. |
|
Form(java.lang.String id,
IModel model)
|
|
| Method Summary | |
|---|---|
void |
add(IFormValidator validator)
Adds a form validator to the form. |
protected void |
appendDefaultButtonField(MarkupStream markupStream,
ComponentTag openTag)
If a default button was set on this form, this method will be called to render an extra field with an invisible style so that pressing enter in one of the textfields will do a form submit using this button. |
protected void |
beforeUpdateFormComponentModels()
Template method to allow clients to do any processing (like recording the current model so that, in case onSubmit does further validation, the model can be rolled back) before the actual updating of form component models is done. |
void |
clearInput()
Clears the input from the form's nested children of type FormComponent. |
protected void |
delegateSubmit(Button submittingButton)
Called (by the default implementation of 'process') when all fields validated, the form was updated and it's data was allowed to be persisted. |
void |
error(java.lang.String error,
java.util.Map args)
/** Registers an error feedback message for this component |
Button |
findSubmittingButton()
Gets the button which submitted this form. |
Button |
getDefaultButton()
Gets the default button. |
protected java.lang.String |
getHiddenFieldId()
Returns the HiddenFieldId which will be used as the name and id property of the hiddenfield that is generated for event dispatches. |
protected java.lang.String |
getJavascriptId()
Returns the javascript/css id of this form that will be used to generated the id="xxx" attribute. |
java.lang.CharSequence |
getJsForInterfaceUrl(java.lang.CharSequence url)
This generates a piece of javascript code that sets the url in the special hidden field and submits the form. |
Bytes |
getMaxSize()
|
java.lang.String |
getValidatorKeyPrefix()
Returns the prefix used when building validator keys. |
protected IValuePersister |
getValuePersister()
Gets the form component persistence manager; it is lazy loaded. |
boolean |
hasError()
Gets whether the current form has any error registered. |
protected void |
internalOnDetach()
THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. |
protected void |
internalOnModelChanged()
THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. |
boolean |
isSubmitted()
Checks if this form has been submitted during the current request |
boolean |
isVersioned()
Method made final because we want to ensure users call setVersioned. |
void |
loadPersistentFormComponentValues()
THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. |
protected void |
markFormComponentsInvalid()
Mark each form component on this form invalid. |
protected void |
markFormComponentsValid()
Mark each form component on this form valid. |
protected void |
onComponentTag(ComponentTag tag)
Processes the component tag. |
protected void |
onComponentTagBody(MarkupStream markupStream,
ComponentTag openTag)
Append an additional hidden input tag to support anchor tags that can submit a form. |
protected void |
onError()
Method to override if you want to do something special when an error occurs (other than simply displaying validation errors). |
void |
onFormSubmitted()
THIS METHOD IS NOT PART OF THE WICKET API. |
protected void |
onRender(MarkupStream markupStream)
Renders this component. |
protected void |
onSubmit()
Implemented by subclasses to deal with form submits. |
boolean |
process()
Process the form. |
void |
removePersistentFormComponentValues(boolean disablePersistence)
Removes already persisted data for all FormComponent childs and disable persistence for the same components. |
void |
setDefaultButton(Button button)
Sets the default button. |
void |
setMaxSize(Bytes maxSize)
|
void |
setMultiPart(boolean multiPart)
Set to true to use enctype='multipart/form-data', and to process file uplloads by default multiPart = false |
Component |
setVersioned(boolean isVersioned)
|
protected void |
updateFormComponentModels()
Update the model of all form components using the fields that were sent with the current request. |
protected void |
validate()
Validates the form. |
protected void |
validateFormValidator(IFormValidator validator)
Validates form with the given form validator |
void |
visitFormComponents(FormComponent.IVisitor visitor)
Convenient and typesafe way to visit all the form components on a form |
| Methods inherited from class wicket.markup.html.WebMarkupContainer |
|---|
getMarkupType, getWebPage |
| Methods inherited from class wicket.MarkupContainer |
|---|
add, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, internalAdd, internalAttach, internalDetach, isTransparentResolver, iterator, iterator, newMarkupResourceStream, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public Form(java.lang.String id)
id - See Component
public Form(java.lang.String id,
IModel model)
id - See Componentmodel - See ComponentComponent.Component(String, IModel)| Method Detail |
|---|
public final Button getDefaultButton()
WARNING: note that this is a best effort only. Unfortunately having a 'default' button in a form is ill defined in the standards, and of course IE has it's own way of doing things.
public Bytes getMaxSize()
public final void loadPersistentFormComponentValues()
Retrieves FormComponent values related to the page using the persister and assign the values to the FormComponent. Thus initializing them.
public final void onFormSubmitted()
onFormSubmitted in interface IFormSubmitListenervalidate()public final boolean isSubmitted()
protected void internalOnDetach()
Component
internalOnDetach in class ComponentComponent.internalOnDetach()public void removePersistentFormComponentValues(boolean disablePersistence)
disablePersistence - if true, disable persistence for all FormComponents on that
page. If false, it will remain unchanged.Page.removePersistedFormData(Class, boolean)public final void setDefaultButton(Button button)
WARNING: note that this is a best effort only. Unfortunately having a 'default' button in a form is ill defined in the standards, and of course IE has it's own way of doing things.
button - The button to set as the default button, or null when you want
to 'unset' any previously set default buttonpublic void setMaxSize(Bytes maxSize)
maxSize - The maxSize for uploaded filespublic void setMultiPart(boolean multiPart)
multiPart - whether this form should behave as a multipart formpublic final Component setVersioned(boolean isVersioned)
setVersioned in class ComponentisVersioned - True to turn on versioning for this component, false to turn
it off for this component and any children.
Component.setVersioned(boolean)public boolean isVersioned()
isVersioned in class ComponentComponent.isVersioned()public final void visitFormComponents(FormComponent.IVisitor visitor)
visitor - The visitor interface to call
protected void appendDefaultButtonField(MarkupStream markupStream,
ComponentTag openTag)
markupStream - The markup streamopenTag - The open tag for the bodyprotected void beforeUpdateFormComponentModels()
protected void delegateSubmit(Button submittingButton)
This implementation first finds out whether the form processing was triggered by a nested button of this form. If that is the case, that button's onSubmit is called first.
Regardless of whether a submitting button was found, the form's onSubmit method is called next.
submittingButton - the button that triggered this form processing, or null if the
processing was triggered by something else (like a non-Wicket
submit button or a javascript execution)public final Button findSubmittingButton()
protected IValuePersister getValuePersister()
public final boolean hasError()
protected void internalOnModelChanged()
Component
internalOnModelChanged in class ComponentComponent.internalOnModelChanged()protected final void markFormComponentsInvalid()
protected final void markFormComponentsValid()
protected final java.lang.String getHiddenFieldId()
protected final java.lang.String getJavascriptId()
protected void onComponentTagBody(MarkupStream markupStream,
ComponentTag openTag)
onComponentTagBody in class MarkupContainermarkupStream - The markup streamopenTag - The open tag for the bodyprotected void onComponentTag(ComponentTag tag)
Component
onComponentTag in class Componenttag - Tag to modifyComponent.onComponentTag(ComponentTag)protected void onError()
protected void onRender(MarkupStream markupStream)
MarkupContainer
onRender in class MarkupContainerComponent.onRender(MarkupStream)protected void onSubmit()
public boolean process()
See the class documentation for further details on the form processing
protected final void updateFormComponentModels()
FormComponent.updateModel()public final void clearInput()
FormComponent. This method is typically called when a form needs
to be reset.
protected void validate()
protected final void validateFormValidator(IFormValidator validator)
validator - public final java.lang.CharSequence getJsForInterfaceUrl(java.lang.CharSequence url)
url - The interface url that has to be stored in the hidden field
and submitted
public java.lang.String getValidatorKeyPrefix()
This can be useful when different designs are used for a form. In a form where error messages are displayed next to their respective form components as opposed to at the top of the form, the ${label} attribute is of little use and only causes redundant information to appear in the message. Forms like these can return the "short" (or any other string) validator prefix and declare key: short.RequiredValidator=required to override the longer message which is usually declared like this: RequiredValidator=${label} is a required field
Returned prefix will be used for all form components. The prefix can also
be overridden on form component level by overriding
FormComponent.getValidatorKeyPrefix()
public void add(IFormValidator validator)
validator - validatorIFormValidator
public final void error(java.lang.String error,
java.util.Map args)
error - error messageargs - argument replacement map for ${key} variables
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||