bundles/org.apache.jasper.glassfish/src/org/apache/jasper/compiler/Generator.java
private void generatePageScopedVariables(JasperTagInfo tagInfo) {

        // "normal" attributes
        TagAttributeInfo[] attrInfos = tagInfo.getAttributes();
        for (int i = 0; i < attrInfos.length; i++) {
            String attrName = attrInfos[i].getName();
            out.printil("if( " + toGetterMethod(attrName) + " != null ) {");
            out.pushIndent();
            out.printin("_jspx_page_context.setAttribute(");
            out.print(quote(attrName));
            out.print(", ");
            out.print(toGetterMethod(attrName));
            out.println(");");
            if (attrInfos[i].isDeferredValue()) { 
                // If the attribute is a deferred value, also set it to an EL
                // variable of the same name.
                out.printin("org.apache.jasper.runtime.PageContextImpl.setValueVariable(");
                out.print("_jspx_page_context, ");
                out.print(quote(attrName));
                out.print(", ");
                out.print(toGetterMethod(attrName));
                out.println(");");
            }
                
            if (attrInfos[i].isDeferredMethod()) {
                // If the attribute is a deferred method, set a wrapped
                // ValueExpression to an EL variable of the same name.
                out.printin("org.apache.jasper.runtime.PageContextImpl.setMethodVariable(");
                out.print("_jspx_page_context, ");
                out.print(quote(attrName));
                out.print(", ");
                out.print(toGetterMethod(attrName));
                out.println(");");
            }
            out.popIndent();
            out.println("}");
        }

        // Expose the Map containing dynamic attributes as a page-scoped var
        if (tagInfo.hasDynamicAttributes()) {
            out.printin("_jspx_page_context.setAttribute(\"");
            out.print(tagInfo.getDynamicAttributesMapName());
            out.print("\", _jspx_dynamic_attrs);");
        }
    }
private void generatePageScopedVariables(JasperTagInfo tagInfo) {

        // "normal" attributes
        TagAttributeInfo[] attrInfos = tagInfo.getAttributes();
        for (int i = 0; i < attrInfos.length; i++) {
            String attrName = attrInfos[i].getName();
            out.printil("if( " + toGetterMethod(attrName) + " != null ) {");
            out.pushIndent();
            out.printin("_jspx_page_context.setAttribute(");
            out.print(quote(attrName));
            out.print(", ");
            out.print(toGetterMethod(attrName));
            out.println(");");
            if (attrInfos[i].isDeferredValue()) { 
                // If the attribute is a deferred value, also set it to an EL
                // variable of the same name.
                out.printin("org.apache.jasper.runtime.PageContextImpl.setValueVariable(");
                out.print("_jspx_page_context, ");
                out.print(quote(attrName));
                out.print(", ");
                out.print(toGetterMethod(attrName));
                out.println(");");
            }
                
            if (attrInfos[i].isDeferredMethod()) {
                // If the attribute is a deferred method, set a wrapped
                // ValueExpression to an EL variable of the same name.
                out.printin("org.apache.jasper.runtime.PageContextImpl.setMethodVariable(");
                out.print("_jspx_page_context, ");
                out.print(quote(attrName));
                out.print(", ");
                out.print(toGetterMethod(attrName));
                out.println(");");
            }
            out.popIndent();
            out.println("}");
        }

        // Expose the Map containing dynamic attributes as a page-scoped var
        if (tagInfo.hasDynamicAttributes()) {
            out.printin("_jspx_page_context.setAttribute(\"");
            out.print(tagInfo.getDynamicAttributesMapName());
            out.print("\", _jspx_dynamic_attrs);");
        }
    }
/*
Creates a page-scoped variable for each declared tag attribute.
Also, if the tag accepts dynamic attributes, a page-scoped variable
is made available for each dynamic attribute that was passed in.