Class RelativePathPrefixHandler

  extended by org.apache.wicket.markup.parser.AbstractMarkupFilter
      extended by org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler
All Implemented Interfaces:, IClusterable, IMarkupFilter, IComponentResolver

public final class RelativePathPrefixHandler
extends AbstractMarkupFilter
implements IComponentResolver

The purpose of this filter is to make all "href", "src" and "background" attributes found in the markup which contain a relative URL like "myDir/myPage.gif" actually resolve in the output HTML, by prefixing them with with an appropriate path to make the link work properly, even if the current page is being displayed at a mounted URL or whatever. It is applied to all non wicket component tags, except for auto-linked tags. It achieves this by being both an IMarkupFilter and IComponentResolver, and works similarly to the <wicket:message> code. For each tag, we look to see if the path in "href", "src" and "background" attributes is relative. If it is, we assume it's relative to the context path and we should prefix it appropriately so that it resolves correctly for the current request, even if that's for something that's not at the context root. This is done for ServletWebRequests by prepending with "../" tokens, for example.

Al Maw
See Also:
Serialized Form

Field Summary
          Behavior that adds a prefix to src, href and background attributes to make them context-relative
          The id automatically assigned to tags without an id which we need to prepend a relative path to.
Constructor Summary
Method Summary
protected  MarkupElement onComponentTag(ComponentTag tag)
          Invoked when a ComponentTag was found.
 Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
          Try to resolve a component.
Methods inherited from class org.apache.wicket.markup.parser.AbstractMarkupFilter
getNextFilter, nextElement, onSpecialTag, postProcess, setNextFilter
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail


public static final java.lang.String WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
The id automatically assigned to tags without an id which we need to prepend a relative path to.

See Also:
Constant Field Values


public static final Behavior RELATIVE_PATH_BEHAVIOR
Behavior that adds a prefix to src, href and background attributes to make them context-relative

Constructor Detail


public RelativePathPrefixHandler()
Method Detail


protected final MarkupElement onComponentTag(ComponentTag tag)
                                      throws java.text.ParseException
Description copied from class: AbstractMarkupFilter
Invoked when a ComponentTag was found.

By default this method is also called for WicketTags.

Specified by:
onComponentTag in class AbstractMarkupFilter
Usually the same as the tag attribute


public Component resolve(MarkupContainer container,
                         MarkupStream markupStream,
                         ComponentTag tag)
Description copied from interface: IComponentResolver
Try to resolve a component.

Specified by:
resolve in interface IComponentResolver
container - The container parsing its markup
markupStream - The current markupStream
tag - The current component tag while parsing the markup
component or null if not found

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