org.mmbase.bridge.jsp.taglib.pageflow
Class UrlTag

java.lang.Object
  extended byjavax.servlet.jsp.tagext.TagSupport
      extended byjavax.servlet.jsp.tagext.BodyTagSupport
          extended byorg.mmbase.bridge.jsp.taglib.ContextReferrerTag
              extended byorg.mmbase.bridge.jsp.taglib.CloudReferrerTag
                  extended byorg.mmbase.bridge.jsp.taglib.pageflow.UrlTag
All Implemented Interfaces:
BodyTag, IterationTag, ParamHandler, Serializable, Tag
Direct Known Subclasses:
IncludeTag, LeafFileTag, RedirectTag, TreeFileTag, UrlWriterTag

public class UrlTag
extends CloudReferrerTag
implements ParamHandler

A Tag to produce an URL with parameters. It can use 'context' parameters easily.

Version:
$Id: UrlTag.java,v 1.79 2006/06/23 15:29:06 michiel Exp $
Author:
Michiel Meeuwissen
See Also:
Serialized Form

Field Summary
protected  Attribute encode
           
protected  Attribute escapeAmps
           
protected  List extraParameters
           
protected  Attribute page
           
 
Fields inherited from class org.mmbase.bridge.jsp.taglib.ContextReferrerTag
contextId, EVAL_BODY, helper, id, pageContextTag, referid, writerid
 
Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport
bodyContent
 
Fields inherited from class javax.servlet.jsp.tagext.TagSupport
pageContext
 
Fields inherited from interface javax.servlet.jsp.tagext.BodyTag
EVAL_BODY_BUFFERED, EVAL_BODY_TAG
 
Fields inherited from interface javax.servlet.jsp.tagext.IterationTag
EVAL_BODY_AGAIN
 
Fields inherited from interface javax.servlet.jsp.tagext.Tag
EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE
 
Constructor Summary
UrlTag()
           
 
Method Summary
protected  boolean addContext()
           
 void addParameter(String key, Object value)
           
 int doAfterBody()
           
protected  void doAfterBodySetValue()
           
 int doEndTag()
           
protected  boolean doMakeRelative()
          Whether URL must be generatored relatively.
 int doStartTag()
           
protected  String getPage()
           
protected  String getUrl()
           
protected  String getUrl(boolean e)
           
protected  String getUrl(boolean writeamp, boolean encodeUrl)
          Returns url with the extra parameters (of referids and sub-param-tags).
protected  void initDoEndTag()
           
protected  StringBuffer makeRelative(StringBuffer show)
          If it would be nice that an URL starting with '/' would be generated relatively to the current request URL, then this method can do it.
 void setAbsolute(String a)
           
 void setEncode(String e)
           
 void setEscapeamps(String e)
           
 void setPage(String p)
           
 void setReferids(String r)
           
protected  boolean useAbsoluteAttribute(StringBuffer show, String page)
           
 
Methods inherited from class org.mmbase.bridge.jsp.taglib.CloudReferrerTag
fillStandardParameters, findCloudProvider, findCloudProvider, getCloudContext, getCloudVar, getLocale, getNode, getNodeOrNull, setCloud
 
Methods inherited from class org.mmbase.bridge.jsp.taglib.ContextReferrerTag
findLoopOrQuery, findParentTag, findParentTag, findParentTag, findParentTag, findWriter, findWriter, getAttribute, getAttributeBoolean, getAttributeInteger, getAttributeInteger, getAttributeValue, getContentTag, getContextProvider, getContextTag, getDefaultLocale, getEscapedValue, getId, getObject, getObjectConditional, getPageContext, getPageContextTag, getReferid, getString, getTaglibVersion, getTimeZone, getWriterValue, haveBody, release, setContext, setEscape, setId, setJspvar, setListdelimiter, setPageContext, setReferid, setVartype, setWrite, setWriter
 
Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport
doInitBody, getBodyContent, getPreviousOut, setBodyContent
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getParent, getValue, getValues, removeValue, setParent, setValue
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.servlet.jsp.tagext.Tag
getParent, setParent
 

Field Detail

extraParameters

protected final List extraParameters

page

protected Attribute page

escapeAmps

protected Attribute escapeAmps

encode

protected Attribute encode
Constructor Detail

UrlTag

public UrlTag()
Method Detail

setReferids

public void setReferids(String r)
                 throws JspTagException
Throws:
JspTagException

setPage

public void setPage(String p)
             throws JspTagException
Throws:
JspTagException

setEscapeamps

public void setEscapeamps(String e)
                   throws JspTagException
Throws:
JspTagException

setEncode

public void setEncode(String e)
               throws JspTagException
Throws:
JspTagException

setAbsolute

public void setAbsolute(String a)
                 throws JspTagException
Throws:
JspTagException
Since:
MMBase-1.8

addParameter

public void addParameter(String key,
                         Object value)
                  throws JspTagException
Specified by:
addParameter in interface ParamHandler
Throws:
JspTagException

doStartTag

public int doStartTag()
               throws JspTagException
Specified by:
doStartTag in interface Tag
Throws:
JspTagException

getPage

protected String getPage()
                  throws JspTagException
Throws:
JspTagException

makeRelative

protected StringBuffer makeRelative(StringBuffer show)
If it would be nice that an URL starting with '/' would be generated relatively to the current request URL, then this method can do it. If the URL is not used to write to (this) page, then you probably don't want that. The behaviour can be overruled by starting the URL with two '/'s.

Since:
MMBase-1.7

doMakeRelative

protected boolean doMakeRelative()
Whether URL must be generatored relatively. This default to false, and can be configured with the servlet context init parameter 'mmbase.taglib.url.makerelative'. It can be useful to be sure that url's are relative, if e.g. the context path is taken away in an URL-rewrite (e.g. by proxy). This might give problems with redirects, but if you happen to solve that too, or don't do that...

Since:
MMBase-1.7

addContext

protected boolean addContext()

useAbsoluteAttribute

protected boolean useAbsoluteAttribute(StringBuffer show,
                                       String page)
                                throws JspTagException
Throws:
JspTagException
Since:
MMBase-1.8.1

getUrl

protected String getUrl(boolean writeamp,
                        boolean encodeUrl)
                 throws JspTagException
Returns url with the extra parameters (of referids and sub-param-tags).

Throws:
JspTagException

getUrl

protected String getUrl()
                 throws JspTagException
Throws:
JspTagException

getUrl

protected String getUrl(boolean e)
                 throws JspTagException
Throws:
JspTagException

doAfterBodySetValue

protected void doAfterBodySetValue()
                            throws JspTagException
Throws:
JspTagException

doAfterBody

public int doAfterBody()
                throws JspException
Specified by:
doAfterBody in interface IterationTag
Throws:
JspException

initDoEndTag

protected void initDoEndTag()
                     throws JspTagException
Throws:
JspTagException

doEndTag

public int doEndTag()
             throws JspTagException
Specified by:
doEndTag in interface Tag
Overrides:
doEndTag in class ContextReferrerTag
Throws:
JspTagException


MMBase build 1.8.1.20060716