org.apache.taglibs.standard.tag.common.core
Class ImportSupport

java.lang.Object
  extended by javax.servlet.jsp.tagext.TagSupport
      extended by javax.servlet.jsp.tagext.BodyTagSupport
          extended by org.apache.taglibs.standard.tag.common.core.ImportSupport
All Implemented Interfaces:
Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally, ParamParent
Direct Known Subclasses:
ImportTag, ImportTag

public abstract class ImportSupport
extends BodyTagSupport
implements TryCatchFinally, ParamParent

Support for tag handlers for <import>, the general-purpose text-importing mechanism for JSTL 1.0. The rtexprvalue and expression- evaluating libraries each have handlers that extend this class.

Author:
Shawn Bayern
See Also:
Serialized Form

Field Summary
protected  String charEncoding
           
protected  String context
           
static String DEFAULT_ENCODING
          Default character encoding for response.
protected  String url
           
static String VALID_SCHEME_CHARS
          Valid characters in a scheme.
 
Fields inherited from class javax.servlet.jsp.tagext.BodyTagSupport
bodyContent
 
Fields inherited from class javax.servlet.jsp.tagext.TagSupport
id, 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
ImportSupport()
           
 
Method Summary
 void addParameter(String name, String value)
          Adds a parameter to this tag's URL.
 void doCatch(Throwable t)
          Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().
 int doEndTag()
          Default processing of the end tag returning EVAL_PAGE.
 void doFinally()
          Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag.
 int doStartTag()
          Default processing of the start tag returning EVAL_BODY_BUFFERED.
static boolean isAbsoluteUrl(String url)
          Returns true if our current URL is absolute, false otherwise.
 void release()
          Release state.
 void setScope(String scope)
           
 void setVar(String var)
           
 void setVarReader(String varReader)
           
static String stripSession(String url)
          Strips a servlet session ID from url.
 
Methods inherited from class javax.servlet.jsp.tagext.BodyTagSupport
doAfterBody, doInitBody, getBodyContent, getPreviousOut, setBodyContent
 
Methods inherited from class javax.servlet.jsp.tagext.TagSupport
findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, 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, setPageContext, setParent
 

Field Detail

VALID_SCHEME_CHARS

public static final String VALID_SCHEME_CHARS

Valid characters in a scheme.

RFC 1738 says the following:

Scheme names consist of a sequence of characters. The lower case letters "a"--"z", digits, and the characters plus ("+"), period ("."), and hyphen ("-") are allowed. For resiliency, programs interpreting URLs should treat upper case letters as equivalent to lower case in scheme names (e.g., allow "HTTP" as well as "http").

We treat as absolute any URL that begins with such a scheme name, followed by a colon.

See Also:
Constant Field Values

DEFAULT_ENCODING

public static final String DEFAULT_ENCODING
Default character encoding for response.

See Also:
Constant Field Values

url

protected String url

context

protected String context

charEncoding

protected String charEncoding
Constructor Detail

ImportSupport

public ImportSupport()
Method Detail

doStartTag

public int doStartTag()
               throws JspException
Description copied from class: BodyTagSupport
Default processing of the start tag returning EVAL_BODY_BUFFERED.

Specified by:
doStartTag in interface Tag
Overrides:
doStartTag in class BodyTagSupport
Returns:
EVAL_BODY_BUFFERED
Throws:
JspException - if an error occurred while processing this tag
See Also:
Tag.doStartTag()

doEndTag

public int doEndTag()
             throws JspException
Description copied from class: BodyTagSupport
Default processing of the end tag returning EVAL_PAGE.

Specified by:
doEndTag in interface Tag
Overrides:
doEndTag in class BodyTagSupport
Returns:
EVAL_PAGE
Throws:
JspException - if an error occurred while processing this tag
See Also:
Tag.doEndTag()

doCatch

public void doCatch(Throwable t)
             throws Throwable
Description copied from interface: TryCatchFinally
Invoked if a Throwable occurs while evaluating the BODY inside a tag or in any of the following methods: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().

This method is not invoked if the Throwable occurs during one of the setter methods.

This method may throw an exception (the same or a new one) that will be propagated further up the nest chain. If an exception is thrown, doFinally() will be invoked.

This method is intended to be used to respond to an exceptional condition.

Specified by:
doCatch in interface TryCatchFinally
Parameters:
t - The throwable exception navigating through this tag.
Throws:
Throwable - if the exception is to be rethrown further up the nest chain.

doFinally

public void doFinally()
Description copied from interface: TryCatchFinally
Invoked in all cases after doEndTag() for any class implementing Tag, IterationTag or BodyTag. This method is invoked even if an exception has occurred in the BODY of the tag, or in any of the following methods: Tag.doStartTag(), Tag.doEndTag(), IterationTag.doAfterBody() and BodyTag.doInitBody().

This method is not invoked if the Throwable occurs during one of the setter methods.

This method should not throw an Exception.

This method is intended to maintain per-invocation data integrity and resource management actions.

Specified by:
doFinally in interface TryCatchFinally

release

public void release()
Description copied from class: BodyTagSupport
Release state.

Specified by:
release in interface Tag
Overrides:
release in class BodyTagSupport
See Also:
Tag.release()

setVar

public void setVar(String var)

setVarReader

public void setVarReader(String varReader)

setScope

public void setScope(String scope)

addParameter

public void addParameter(String name,
                         String value)
Description copied from interface: ParamParent
Adds a parameter to this tag's URL. The intent is that the <param> subtag will call this to register URL parameters. Assumes that 'name' and 'value' are appropriately encoded and do not contain any meaningful metacharacters; in order words, escaping is the responsibility of the caller.

Specified by:
addParameter in interface ParamParent
See Also:
ParamSupport

isAbsoluteUrl

public static boolean isAbsoluteUrl(String url)
Returns true if our current URL is absolute, false otherwise.


stripSession

public static String stripSession(String url)
Strips a servlet session ID from url. The session ID is encoded as a URL "path parameter" beginning with "jsessionid=". We thus remove anything we find between ";jsessionid=" (inclusive) and either EOS or a subsequent ';' (exclusive).



Copyright © 2007 Mort Bay Consulting. All Rights Reserved.