org.apache.wicket.markup.html.link
Class ExternalLink

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.link.AbstractLink
                  extended by org.apache.wicket.markup.html.link.ExternalLink
All Implemented Interfaces:
Serializable, IClusterable, IConverterLocator

public class ExternalLink
extends AbstractLink

A simple anchor link (<a href="http://url">) pointing to any URL. Usually this is used for links to destinations outside of Wicket.

Note: in the case when the support for cookies in the browser is disabled the user's jsessionid will leak in the 'Referrer' header after clicking this link. If this is a problem for the application then better use a Link which redirects to a shared resource (see WebApplication#mountResource(String, org.apache.wicket.request.resource.ResourceReference) , e.g. "/myapp/redirecting-resource?url=...") which on its side redirects to the new URL using RedirectToUrlException. Another option is to use rel="noreferrer" attribute in your markup but this will work only in the modern browsers (supporting HTML5 standard).

Author:
Juergen Donnerstag
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.IVisitor<T extends Component>, Component.VisibilityChange
 
Field Summary
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_CONFIGURED, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
ExternalLink(String id, IModel<String> href)
          Constructor.
ExternalLink(String id, IModel<String> href, IModel<String> label)
          Constructor.
ExternalLink(String id, String href)
          Constructor.
ExternalLink(String id, String href, String label)
          Constructor.
 
Method Summary
 IModel<String> getLabel()
           
 PopupSettings getPopupSettings()
          Gets the popup specification.
 boolean isContextRelative()
           
protected  void onComponentTag(ComponentTag tag)
          Processes the component tag.
protected  void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
          Handle the container's body.
 ExternalLink setContextRelative(boolean contextRelative)
          Set to true if this link should be automatically prepended with ../ to make it relative to the context root.
 ExternalLink setPopupSettings(PopupSettings popupSettings)
          Sets the popup specification.
 
Methods inherited from class org.apache.wicket.markup.html.link.AbstractLink
disableLink, getAfterDisabledLink, getBeforeDisabledLink, isLinkEnabled, onBeforeRender, setAfterDisabledLink, setBeforeDisabledLink
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onAfterRenderChildren, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, renderNext, replace, setDefaultModel, setMarkupStream, size, swap, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachBehaviors, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdImpl, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, internalOnModelChanged, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, onAfterRender, onAttach, onBeginRequest, onConfigure, onDetach, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ExternalLink

public ExternalLink(String id,
                    String href,
                    String label)
Constructor.

Parameters:
id - See Component
href - the href attribute to set
label - the label (body)

ExternalLink

public ExternalLink(String id,
                    String href)
Constructor.

Parameters:
id - The name of this component
href - the href attribute to set

ExternalLink

public ExternalLink(String id,
                    IModel<String> href,
                    IModel<String> label)
Constructor.

Parameters:
id - See Component
href - the href attribute to set
label - the label (body)

ExternalLink

public ExternalLink(String id,
                    IModel<String> href)
Constructor.

Parameters:
id - The name of this component
href - the href attribute to set
Method Detail

getPopupSettings

public final PopupSettings getPopupSettings()
Gets the popup specification. If not-null, a javascript on-click event handler will be generated that opens a new window using the popup properties.

Returns:
the popup specification.

setPopupSettings

public final ExternalLink setPopupSettings(PopupSettings popupSettings)
Sets the popup specification. If not-null, a javascript on-click event handler will be generated that opens a new window using the popup properties.

Parameters:
popupSettings - the popup specification.
Returns:
This

onComponentTag

protected void onComponentTag(ComponentTag tag)
Processes the component tag.

Overrides:
onComponentTag in class Component
Parameters:
tag - Tag to modify
See Also:
Component.onComponentTag(org.apache.wicket.markup.ComponentTag)

onComponentTagBody

protected void onComponentTagBody(MarkupStream markupStream,
                                  ComponentTag openTag)
Handle the container's body.

Overrides:
onComponentTagBody in class AbstractLink
Parameters:
markupStream - The markup stream
openTag - The open tag for the body
See Also:
Component.onComponentTagBody(org.apache.wicket.markup.MarkupStream, org.apache.wicket.markup.ComponentTag)

isContextRelative

public boolean isContextRelative()
Returns:
True if this link is automatically prepended with ../ to make it relative to the context root.

setContextRelative

public ExternalLink setContextRelative(boolean contextRelative)
Set to true if this link should be automatically prepended with ../ to make it relative to the context root.

Parameters:
contextRelative -
Returns:
This for chaining

getLabel

public IModel<String> getLabel()
Returns:
label attribute


Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.