⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variableinfo.java

📁 jetty SERVER連接資料庫用的軟體
💻 JAVA
字号:
/** * * Copyright 2003-2004 The Apache Software Foundation * *  Licensed under the Apache License, Version 2.0 (the "License"); *  you may not use this file except in compliance with the License. *  You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * *  Unless required by applicable law or agreed to in writing, software *  distributed under the License is distributed on an "AS IS" BASIS, *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *  See the License for the specific language governing permissions and *  limitations under the License. *///// This source code implements specifications defined by the Java// Community Process. In order to remain compliant with the specification// DO NOT add / change / or delete method signatures!//package javax.servlet.jsp.tagext;/** * 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. * * <p> * Scripting variables generated by a custom action have an associated  * scope of either AT_BEGIN, NESTED, or AT_END. * * <p> * 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, * &quot;boxed&quot; types such as <code>java.lang.Integer</code> must  * be used instead of primitives. * * <p> * The class name may be a Fully Qualified Class Name, or a short * class name. * * <p> * 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. * * <p> * 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. * * <p><B>Usage Comments</B> * <p> * 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 J2EE). Using fully qualified class names in this * manner makes the usage relatively resistant to configuration * errors. * * <p> * 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. * * <p><B>Synchronization Protocol</B> * * <p> * 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: * * <p> * <IMG src="doc-files/VariableInfo-1.gif" *      alt="NESTED, AT_BEGIN and AT_END Variable Scopes"/> * *<p> * The JSP 2.0 specification defines the interpretation of 3 values: *  * <ul> * <li> NESTED, if the scripting variable is available between * the start tag and the end tag of the action that defines it. * <li> * AT_BEGIN, if the scripting variable is available from the start tag * of the action that defines it until the end of the scope. * <li> AT_END, if the scripting variable is available after the end tag * of the action that defines it until the end of the scope. * </ul> * * 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.  <b>Note:</b> the synchronization of the variable(s) * will occur <em>after</em> the respective method has been called. * * <blockquote> * <table cellpadding="2" cellspacing="2" border="0" width="55%" *        bgcolor="#999999" summary="Variable Synchronization Points"> * <tbody> *   <tr align="center"> *     <td valign="top" colspan="6" bgcolor="#999999"><u><b>Variable Synchronization *     Points</b></u><br> *     </td> *   </tr> *   <tr> *     <th valign="top" bgcolor="#c0c0c0">&nbsp;</th> *     <th valign="top" bgcolor="#c0c0c0" align="center">doStartTag()</th> *     <th valign="top" bgcolor="#c0c0c0" align="center">doInitBody()</th> *     <th valign="top" bgcolor="#c0c0c0" align="center">doAfterBody()</th> *     <th valign="top" bgcolor="#c0c0c0" align="center">doEndTag()</th> *     <th valign="top" bgcolor="#c0c0c0" align="center">doTag()</th> *   </tr> *   <tr> *     <td valign="top" bgcolor="#c0c0c0"><b>Tag<br> *     </b></td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, AT_END<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *   </tr> *   <tr> *     <td valign="top" bgcolor="#c0c0c0"><b>IterationTag<br> *     </b></td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, AT_END<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *   </tr> *   <tr> *     <td valign="top" bgcolor="#c0c0c0"><b>BodyTag<br> *     </b></td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<sup>1</sup><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<sup>1</sup><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, NESTED<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, AT_END<br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *   </tr> *   <tr> *     <td valign="top" bgcolor="#c0c0c0"><b>SimpleTag<br> *     </b></td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff"><br> *     </td> *     <td valign="top" align="center" bgcolor="#ffffff">AT_BEGIN, AT_END<br> *     </td> *   </tr> * </tbody> * </table> * <sup>1</sup> Called after <code>doStartTag()</code> if  * <code>EVAL_BODY_INCLUDE</code> is returned, or after  * <code>doInitBody()</code> otherwise. * </blockquote> * * <p><B>Variable Information in the TLD</B> * <p> * Scripting variable information can also be encoded directly for most cases * into the Tag Library Descriptor using the &lt;variable&gt; subelement of the * &lt;tag&gt; element.  See the JSP specification. */public class VariableInfo {    /**     * Scope information that scripting variable is visible only within the     * start/end tags.     */    public static final int NESTED = 0;    /**     * Scope information that scripting variable is visible after start tag.     */    public static final int AT_BEGIN = 1;    /**     * Scope information that scripting variable is visible after end tag.     */    public static final int AT_END = 2;    /**     * Constructor     * These objects can be created (at translation time) by the TagExtraInfo     * instances.     *     * @param varName The name of the scripting variable     * @param className The type of this variable     * @param declare If true, it is a new variable (in some languages this will     *     require a declaration)     * @param scope Indication on the lexical scope of the variable     */    public VariableInfo(String varName,			String className,			boolean declare,			int scope) {	this.varName = varName;	this.className = className;	this.declare = declare;	this.scope = scope;    }    // Accessor methods        /**     * Returns the name of the scripting variable.     *     * @return the name of the scripting variable     */    public String getVarName() {         return varName;     }        /**     * Returns the type of this variable.     *     * @return the type of this variable     */    public String getClassName() {         return className;     }        /**     * Returns whether this is a new variable.     * If so, in some languages this will require a declaration.     *     * @return whether this is a new variable.     */    public boolean getDeclare() {         return declare;     }        /**     * Returns the lexical scope of the variable.     *      * @return the lexical scope of the variable, either AT_BEGIN, AT_END,     *    or NESTED.     * @see #AT_BEGIN     * @see #AT_END     * @see #NESTED     */    public int getScope() {         return scope;     }    // == private data    private String varName;    private String className;    private boolean declare;    private int scope;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -