javax.servlet.jsp.tagext

Class VariableInfo


  • public class VariableInfo
    extends Object
    Information on the scripting variables that are created/modified by a tag (at run-time). This information is provided by TagExtraInfo classes and it is used by the translation phase of JSP.

    Scripting variables generated by a custom action have an associated scope of either AT_BEGIN, NESTED, or AT_END.

    The class name (VariableInfo.getClassName) in the returned objects is used to determine the types of the scripting variables. Note that because scripting variables are assigned their values from scoped attributes which cannot be of primitive types, "boxed" types such as java.lang.Integer must be used instead of primitives.

    The class name may be a Fully Qualified Class Name, or a short class name.

    If a Fully Qualified Class Name is provided, it should refer to a class that should be in the CLASSPATH for the Web Application (see Servlet 2.4 specification - essentially it is WEB-INF/lib and WEB-INF/classes). Failure to be so will lead to a translation-time error.

    If a short class name is given in the VariableInfo objects, then the class name must be that of a public class in the context of the import directives of the page where the custom action appears. The class must also be in the CLASSPATH for the Web Application (see Servlet 2.4 specification - essentially it is WEB-INF/lib and WEB-INF/classes). Failure to be so will lead to a translation-time error.

    Usage Comments

    Frequently a fully qualified class name will refer to a class that is known to the tag library and thus, delivered in the same JAR file as the tag handlers. In most other remaining cases it will refer to a class that is in the platform on which the JSP processor is built (like Java EE). Using fully qualified class names in this manner makes the usage relatively resistant to configuration errors.

    A short name is usually generated by the tag library based on some attributes passed through from the custom action user (the author), and it is thus less robust: for instance a missing import directive in the referring JSP page will lead to an invalid short name class and a translation error.

    Synchronization Protocol

    The result of the invocation on getVariableInfo is an array of VariableInfo objects. Each such object describes a scripting variable by providing its name, its type, whether the variable is new or not, and what its scope is. Scope is best described through a picture:

    NESTED, AT_BEGIN and AT_END Variable Scopes

    The JSP 2.0 specification defines the interpretation of 3 values:

    • NESTED, if the scripting variable is available between the start tag and the end tag of the action that defines it.
    • AT_BEGIN, if the scripting variable is available from the start tag of the action that defines it until the end of the scope.
    • AT_END, if the scripting variable is available after the end tag of the action that defines it until the end of the scope.
    The scope value for a variable implies what methods may affect its value and thus where synchronization is needed as illustrated by the table below. Note: the synchronization of the variable(s) will occur after the respective method has been called.
    Variable Synchronization Points
      doStartTag() doInitBody() doAfterBody() doEndTag() doTag()
    Tag
    AT_BEGIN, NESTED


    AT_BEGIN, AT_END

    IterationTag
    AT_BEGIN, NESTED

    AT_BEGIN, NESTED
    AT_BEGIN, AT_END

    BodyTag
    AT_BEGIN, NESTED1
    AT_BEGIN, NESTED1
    AT_BEGIN, NESTED
    AT_BEGIN, AT_END

    SimpleTag




    AT_BEGIN, AT_END

    Retour à la première page de API Java Table des matières Haut

    1 Called after doStartTag() if EVAL_BODY_INCLUDE is returned, or after doInitBody() otherwise.

    Variable Information in the TLD

    Scripting variable information can also be encoded directly for most cases into the Tag Library Descriptor using the <variable> subelement of the <tag> element. See the JSP specification.

    • Field Detail

      • NESTED

        public static final int NESTED
        Scope information that scripting variable is visible only within the start/end tags.
        See Also:
        Constant Field Values
      • AT_BEGIN

        public static final int AT_BEGIN
        Scope information that scripting variable is visible after start tag.
        See Also:
        Constant Field Values
      • AT_END

        public static final int AT_END
        Scope information that scripting variable is visible after end tag.
        See Also:
        Constant Field Values
    • Constructor Detail

      • VariableInfo

        public VariableInfo(String varName,
                            String className,
                            boolean declare,
                            int scope)
        Constructor These objects can be created (at translation time) by the TagExtraInfo instances.
        Parameters:
        varName - The name of the scripting variable
        className - The type of this variable
        declare - If true, it is a new variable (in some languages this will require a declaration)
        scope - Indication on the lexical scope of the variable
    • Method Detail

      • getVarName

        public String getVarName()
        Returns the name of the scripting variable.
        Returns:
        the name of the scripting variable
      • getClassName

        public String getClassName()
        Returns the type of this variable.
        Returns:
        the type of this variable
      • getDeclare

        public boolean getDeclare()
        Returns whether this is a new variable. If so, in some languages this will require a declaration.
        Returns:
        whether this is a new variable.
      • getScope

        public int getScope()
        Returns the lexical scope of the variable.
        Returns:
        the lexical scope of the variable, either AT_BEGIN, AT_END, or NESTED.
        See Also:
        AT_BEGIN, AT_END, NESTED

Traduction non disponible

Les API Java ne sont pas encore traduites en français sur l'infobrol. Seule la version anglaise est disponible pour l'instant.

Version en cache

21/08/2025 13:04:15 Cette version de la page est en cache (à la date du 21/08/2025 13:04:15) afin d'accélérer le traitement.
Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la version plus récente de la page.

Document créé le 24/12/2007, dernière modification le 18/08/2025
Source du document imprimé : https://www.gaudry.be/java-api-javaee-rf-javax/servlet/jsp/tagext/VariableInfo.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : https://docs.oracle.com, VariableInfo (Java(TM) EE 7 Specification APIs)

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.