|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.wicket.markup.parser.AbstractMarkupFilter org.apache.wicket.markup.parser.filter.RelativePathPrefixHandler
public final class RelativePathPrefixHandler
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.
Field Summary | |
---|---|
static Behavior |
RELATIVE_PATH_BEHAVIOR
Behavior that adds a prefix to src, href and background attributes to make them context-relative |
static 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. |
Constructor Summary | |
---|---|
RelativePathPrefixHandler()
Constructor for the IComponentResolver role. |
|
RelativePathPrefixHandler(MarkupResourceStream markup)
Constructor for the IMarkupFilter role |
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 |
---|
getMarkupResourceStream, getNextFilter, getWicketNamespace, getWicketNamespace, 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 String WICKET_RELATIVE_PATH_PREFIX_CONTAINER_ID
public static final Behavior RELATIVE_PATH_BEHAVIOR
Constructor Detail |
---|
public RelativePathPrefixHandler()
public RelativePathPrefixHandler(MarkupResourceStream markup)
markup
- The markup created by reading the markup fileMethod Detail |
---|
protected final MarkupElement onComponentTag(ComponentTag tag) throws ParseException
AbstractMarkupFilter
By default this method is also called for WicketTags.
onComponentTag
in class AbstractMarkupFilter
ParseException
public Component resolve(MarkupContainer container, MarkupStream markupStream, ComponentTag tag)
IComponentResolver
resolve
in interface IComponentResolver
container
- The container parsing its markupmarkupStream
- The current markupStreamtag
- The current component tag while parsing the markup
null
if not found
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |