org.apache.wicket.markup.parser.filter
Class RelativePathPrefixHandler
java.lang.Object
org.apache.wicket.markup.parser.AbstractMarkupFilter
org.apache.wicket.markup.parser.filter.BaseMarkupFilter
org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler
- All Implemented Interfaces:
- Serializable, IClusterable, IMarkupFilter, IComponentResolver
public final class RelativePathPrefixHandler
- extends BaseMarkupFilter
- 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.
- Author:
- Al Maw
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
public static final 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
RELATIVE_PATH_BEHAVIOR
public static final Behavior RELATIVE_PATH_BEHAVIOR
- Behavior that adds a prefix to src, href and background attributes to make them
context-relative
RelativePathPrefixHandler
public RelativePathPrefixHandler()
nextTag
protected final MarkupElement nextTag(ComponentTag tag)
throws ParseException
- Description copied from class:
BaseMarkupFilter
- Invoked with the next ComponentTag
- Specified by:
nextTag
in class BaseMarkupFilter
- Returns:
- the next tag
- Throws:
ParseException
resolve
public Component resolve(MarkupContainer container,
MarkupStream markupStream,
ComponentTag tag)
- Description copied from interface:
IComponentResolver
- Try to resolve the tag, then create a component, add it to the container and render it.
- Specified by:
resolve
in interface IComponentResolver
- Parameters:
container
- The container parsing its markupmarkupStream
- The current markupStreamtag
- The current component tag while parsing the markup
- Returns:
- null, if not found
Copyright © 2004-2011 Apache Software Foundation. All Rights Reserved.