public int doStartTag() throws JspException {
        //checkEnclosedInIncludeTag(); // Moved to TagLibValidator

        // Get request
        HttpServletRequest request = (HttpServletRequest) pageContext.getRequest();

        // Get filename
        subpage = createFileNameFromRequest(request);

        // Get include tag, and add to parameters
        IncludeTag includeTag = (IncludeTag) getParent();
        includeTag.addParameter(parameterName, new Oparam(subpage.getName()));

        // if ! subpage.exist || jsp newer than subpage, write new
        File jsp = new File(pageContext.getServletContext().getRealPath(request.getServletPath()));

        if (!subpage.exists() || jsp.lastModified() > subpage.lastModified()) {
            return EVAL_BODY_BUFFERED;
        }

        // No need to evaluate body again!
        return SKIP_BODY;
    }
public int doStartTag ( ) throws JspException { HttpServletRequest request = ( HttpServletRequest ) pageContext . getRequest ( ) ; subpage = createFileNameFromRequest ( request ) ; IncludeTag includeTag = ( IncludeTag ) getParent ( ) ; includeTag . addParameter ( parameterName , new Oparam ( subpage . getName ( ) ) ) ; File jsp = new File ( pageContext . getServletContext ( ) . getRealPath ( request . getServletPath ( ) ) ) ; if ( ! subpage . exists ( ) || jsp . lastModified ( ) > subpage . lastModified ( ) ) { return EVAL_BODY_BUFFERED ; } return SKIP_BODY ; }
Ensure that the tag implemented by this class is enclosed by an {@code IncludeTag}.
If the tag is not enclosed by an {@code IncludeTag} then a {@code JspException} is thrown.

@return If this tag is enclosed within an {@code IncludeTag}, then the default return value
from this method is the {@code TagSupport.EVAL_BODY_TAG} value.

@throws JspException