All Implemented Interfaces:
Serializable, Iterable<Component>, IEventSink, IEventSource, IFeedbackContributor, IConverterLocator, IGenericComponent<String,FormComponent<String>>, IMetadataContext<Serializable,Component>, IFormModelUpdateListener, IFormSubmitter, IFormSubmittingComponent, IFormVisitorParticipant, ILabelProvider<String>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>, IClusterable
Direct Known Subclasses:
IndicatingAjaxButton

public abstract class AjaxButton extends Button
A button that submits the form via Ajax.
Note that an HTML type attribute of "submit" is automatically changed to "button"- Use AjaxFallbackButton if you want to support non-Ajax form submits too.
Since:
1.3
Author:
Igor Vaynberg (ivaynberg)
See Also:
  • Constructor Details

  • Method Details

    • onInitialize

      protected void onInitialize()
      Description copied from class: Component
      This method is meant to be used as an alternative to initialize components. Usually the component's constructor is used for this task, but sometimes a component cannot be initialized in isolation, it may need to access its parent component or its markup in order to fully initialize. This method is invoked once per component's lifecycle when a path exists from this component to the Page thus providing the component with an atomic callback when the component's environment is built out.

      Overrides must call super#Component.onInitialize(). Usually this should be the first thing an override does, much like a constructor.

      Parent containers are guaranteed to be initialized before their children

      It is safe to use Component.getPage() in this method

      NOTE:The timing of this call is not precise, the contract is that it is called sometime before Component.onBeforeRender().

      Overrides:
      onInitialize in class MarkupContainer
    • newAjaxFormSubmitBehavior

    • shouldTriggerJavaScriptSubmitEvent

      Controls whether or not a JS submit should be triggered on the submitting form. False by default.
      Returns:
      true if submit should be triggered, false otherwise
    • updateAjaxAttributes

      protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
    • getForm

      public Form<?> getForm()
      Returns the form if it was set in constructor, otherwise returns the form nearest in parent hierarchy.
      Specified by:
      getForm in interface IFormSubmitter
      Overrides:
      getForm in class Button
      Returns:
      the parent form or null
      See Also:
    • onSubmit

      public final void onSubmit()
      This method is never called.
      Specified by:
      onSubmit in interface IFormSubmitter
      Overrides:
      onSubmit in class Button
      See Also:
    • onAfterSubmit

      public final void onAfterSubmit()
      Description copied from class: Button
      Override this method to provide special submit handling in a multi-button form. It is called whenever the user clicks this particular button, except if validation fails. This method will be called after Form.onSubmit().
      Specified by:
      onAfterSubmit in interface IFormSubmitter
      Overrides:
      onAfterSubmit in class Button
    • onError

      public final void onError()
      This method is never called.
      Specified by:
      onError in interface IFormSubmitter
      Overrides:
      onError in class Button
      See Also:
    • onSubmit

      protected void onSubmit(AjaxRequestTarget target)
      Listener method invoked on form submit with no errors, before Form.onSubmit().
      Parameters:
      target -
    • onAfterSubmit

      protected void onAfterSubmit(AjaxRequestTarget target)
      Listener method invoked on form submit with no errors, after Form.onSubmit().
      Parameters:
      target -
    • onError

      protected void onError(AjaxRequestTarget target)
      Listener method invoked on form submit with errors
      Parameters:
      target -
    • getStatelessHint

      protected boolean getStatelessHint()
      Description copied from class: Component
      Returns whether the component can be stateless. Also the component behaviors must be stateless, otherwise the component will be treat as stateful. In order for page to be stateless (and not to be stored in session), all components (and component behaviors) must be stateless.
      Overrides:
      getStatelessHint in class Component
      Returns:
      whether the component can be stateless