Example usage for javax.servlet.jsp.tagext TagInfo BODY_CONTENT_EMPTY

List of usage examples for javax.servlet.jsp.tagext TagInfo BODY_CONTENT_EMPTY

Introduction

In this page you can find the example usage for javax.servlet.jsp.tagext TagInfo BODY_CONTENT_EMPTY.

Prototype

String BODY_CONTENT_EMPTY

To view the source code for javax.servlet.jsp.tagext TagInfo BODY_CONTENT_EMPTY.

Click Source Link

Document

Static constant for getBodyContent() when it is empty.

Usage

From source file:org.tinygroup.jspengine.compiler.TagLibraryInfoImpl.java

private TagInfo createTagInfo(TreeNode elem, String jspVersion) throws JasperException {
    String tagName = null;//from w  ww . j a va2  s .  com
    String tagClassName = null;
    String teiClassName = null;

    /*
     * Default body content for JSP 1.2 tag handlers (<body-content> has
     * become mandatory in JSP 2.0, because the default would be invalid
     * for simple tag handlers)
     */
    String bodycontent = "JSP";

    String info = null;
    String displayName = null;
    String smallIcon = null;
    String largeIcon = null;
    boolean dynamicAttributes = false;

    Vector attributeVector = new Vector();
    Vector variableVector = new Vector();
    Iterator list = elem.findChildren();
    while (list.hasNext()) {
        TreeNode element = (TreeNode) list.next();
        String tname = element.getName();

        if ("name".equals(tname)) {
            tagName = element.getBody();
        } else if ("tagclass".equals(tname) || "tag-class".equals(tname)) {
            tagClassName = element.getBody();
        } else if ("teiclass".equals(tname) || "tei-class".equals(tname)) {
            teiClassName = element.getBody();
        } else if ("bodycontent".equals(tname) || "body-content".equals(tname)) {
            bodycontent = element.getBody();
        } else if ("display-name".equals(tname)) {
            displayName = element.getBody();
        } else if ("small-icon".equals(tname)) {
            smallIcon = element.getBody();
        } else if ("large-icon".equals(tname)) {
            largeIcon = element.getBody();
        } else if ("icon".equals(tname)) {
            TreeNode icon = element.findChild("small-icon");
            if (icon != null) {
                smallIcon = icon.getBody();
            }
            icon = element.findChild("large-icon");
            if (icon != null) {
                largeIcon = icon.getBody();
            }
        } else if ("info".equals(tname) || "description".equals(tname)) {
            info = element.getBody();
        } else if ("variable".equals(tname)) {
            variableVector.addElement(createVariable(element));
        } else if ("attribute".equals(tname)) {
            attributeVector.addElement(createAttribute(element, jspVersion));
        } else if ("dynamic-attributes".equals(tname)) {
            dynamicAttributes = JspUtil.booleanValue(element.getBody());
        } else if ("example".equals(tname)) {
            // Ignored elements
        } else if ("tag-extension".equals(tname)) {
            // Ignored
        } else {
            err.jspError("jsp.error.unknown.element.in.tag", tname);
        }
    }

    // JSP 2.0 removed the capital versions of TAGDEPENDENT, EMPTY, and
    // SCRIPTLESS enumerations in body-contentType, see JSP.E.2 ("Changes
    // between JSP 2.0 PFD2 and JSP 2.0 PFD3"), section "Changes to Tag
    // Library Descriptor (TLD)". Enforce that from JSP 2.0 and up, only
    // "JSP", "tagdependent", "empty", and "scriptless" may be specified
    // as body-content values.
    Double jspVersionDouble = Double.valueOf(jspversion);
    if (Double.compare(jspVersionDouble, Constants.JSP_VERSION_2_0) >= 0) {
        if (!bodycontent.equals(TagInfo.BODY_CONTENT_JSP) && !bodycontent.equals(TagInfo.BODY_CONTENT_EMPTY)
                && !bodycontent.equals(TagInfo.BODY_CONTENT_TAG_DEPENDENT)
                && !bodycontent.equals(TagInfo.BODY_CONTENT_SCRIPTLESS)) {
            err.jspError("jsp.error.tld.badbodycontent", bodycontent, tagName);
        }
    }

    TagExtraInfo tei = null;
    if (teiClassName != null && !teiClassName.equals("")) {
        try {
            Class teiClass = ctxt.getClassLoader().loadClass(teiClassName);
            tei = (TagExtraInfo) teiClass.newInstance();
        } catch (Exception e) {
            err.jspError("jsp.error.teiclass.instantiation", teiClassName, e);
        }
    }

    TagAttributeInfo[] tagAttributeInfo = new TagAttributeInfo[attributeVector.size()];
    attributeVector.copyInto(tagAttributeInfo);

    TagVariableInfo[] tagVariableInfos = new TagVariableInfo[variableVector.size()];
    variableVector.copyInto(tagVariableInfos);

    TagInfo taginfo = new TagInfo(tagName, tagClassName, bodycontent, info, this, tei, tagAttributeInfo,
            displayName, smallIcon, largeIcon, tagVariableInfos, dynamicAttributes);
    return taginfo;
}