Behaviors are kind of plug-ins for Components. They allow functionality to be added to a component and get essential events forwarded by the component. They can be bound to a concrete component (using the bind method which is called when the behavior is attached), but they don't need to. They can modify the components markup by changing the rendered ComponentTag. Behaviors can have their own models as well, and they are notified when these are to be detached by the component.
You also cannot modify a components model with a behavior.
@see org.apache.wicket.behavior.IBehaviorListener
@see org.apache.wicket.markup.html.IHeaderContributor
@see org.apache.wicket.behavior.AbstractAjaxBehavior
@see org.apache.wicket.AttributeModifier
@author Ralf Ebert
@author Eelco Hillenius
@author Igor Vaynberg (ivaynberg)