base/struts-tools/src/main/com/thesett/common/webapp/tags/PageControlTag.java
public int doStartTag() throws JspException
    {
        log.fine("public int doStartTag(): called");

        TagUtils tagUtils = TagUtils.getInstance();

        // Get a reference to the PagedList.
        PagedList list = (PagedList) tagUtils.lookup(pageContext, name, property, scope);
        log.fine("list = " + list);

        // Work out what the URL of the action to handle the paging events is.
        String url;

        try
        {
            url = tagUtils.computeURL(pageContext, null, null, null, action, null, null, null, false);
        }
        catch (MalformedURLException e)
        {
            throw new JspException("Got malformed URL exception: ", e);
        }

        // Optionally render the first page button.
        renderButton(renderFirst, 0, 0, openDelimFirst, url, firstText, list.getCurrentPage() != 0);

        // Optionally render the back button.
        renderButton(renderBack, list.getCurrentPage() - 1,
            ((list.getCurrentPage() - 1) < list.getCurrentIndex()) ? (list.getCurrentIndex() - maxPages)
                                                                   : list.getCurrentIndex(), openDelimBack, url,
            backText, (list.getCurrentPage() - 1) >= 0);

        // Render links for pages from the current index to the current index plus the maximum number of pages.
        int from = list.getCurrentIndex();
        int to = list.getCurrentIndex() + maxPages;

        for (int i = from; (i < list.size()) && (i < to); i++)
        {
            renderButton(true, i, list.getCurrentIndex(),
                (i == list.getCurrentPage()) ? openDelimCurrent : openDelimNumber, url, "" + (i + 1),
                i != list.getCurrentPage());
        }

        // Optionally render a more button. The more button should only be rendered if the current index plus
        // the maximum number of pages is less than the total number of pages so there are pages beyond those that
        // have numeric link to them already.
        renderButton((list.getCurrentIndex() + maxPages) < list.size(), list.getCurrentPage() + maxPages,
            list.getCurrentPage() + maxPages, openDelimMore, url, moreText, true);

        // Optionally render a forward button.
        renderButton(renderForward, list.getCurrentPage() + 1,
            ((list.getCurrentPage() + 1) >= (list.getCurrentIndex() + maxPages)) ? (list.getCurrentIndex() + maxPages)
                                                                                 : list.getCurrentIndex(),
            openDelimForward, url, forwardText, (list.getCurrentPage() + 1) < list.size());

        // Optionally render a last page button.
        renderButton(renderLast, list.size() - 1, (list.size() / maxPages) * maxPages, openDelimLast, url, lastText,
            list.getCurrentPage() != (list.size() - 1));

        return SKIP_BODY;
    }
public int doStartTag() throws JspException
    {
        log.fine("public int doStartTag(): called");

        TagUtils tagUtils = TagUtils.getInstance();

        // Get a reference to the PagedList.
        PagedList list = (PagedList) tagUtils.lookup(pageContext, name, property, scope);
        log.fine("list = " + list);

        // Work out what the URL of the action to handle the paging events is.
        String url;

        try
        {
            url = tagUtils.computeURL(pageContext, null, null, null, action, null, null, null, false);
        }
        catch (MalformedURLException e)
        {
            throw new JspException("Got malformed URL exception: ", e);
        }

        // Optionally render the first page button.
        renderButton(renderFirst, 0, 0, openDelimFirst, url, firstText, list.getCurrentPage() != 0);

        // Optionally render the back button.
        renderButton(renderBack, list.getCurrentPage() - 1,
            ((list.getCurrentPage() - 1) < list.getCurrentIndex()) ? (list.getCurrentIndex() - maxPages)
                                                                   : list.getCurrentIndex(), openDelimBack, url,
            backText, (list.getCurrentPage() - 1) >= 0);

        // Render links for pages from the current index to the current index plus the maximum number of pages.
        int from = list.getCurrentIndex();
        int to = list.getCurrentIndex() + maxPages;

        for (int i = from; (i < list.size()) && (i < to); i++)
        {
            renderButton(true, i, list.getCurrentIndex(),
                (i == list.getCurrentPage()) ? openDelimCurrent : openDelimNumber, url, "" + (i + 1),
                i != list.getCurrentPage());
        }

        // Optionally render a more button. The more button should only be rendered if the current index plus
        // the maximum number of pages is less than the total number of pages so there are pages beyond those that
        // have numeric link to them already.
        renderButton((list.getCurrentIndex() + maxPages) < list.size(), list.getCurrentPage() + maxPages,
            list.getCurrentPage() + maxPages, openDelimMore, url, moreText, true);

        // Optionally render a forward button.
        renderButton(renderForward, list.getCurrentPage() + 1,
            ((list.getCurrentPage() + 1) >= (list.getCurrentIndex() + maxPages)) ? (list.getCurrentIndex() + maxPages)
                                                                                 : list.getCurrentIndex(),
            openDelimForward, url, forwardText, (list.getCurrentPage() + 1) < list.size());

        // Optionally render a last page button.
        renderButton(renderLast, list.size() - 1, (list.size() / maxPages) * maxPages, openDelimLast, url, lastText,
            list.getCurrentPage() != (list.size() - 1));

        return SKIP_BODY;
    }
public int doStartTag ( ) throws JspException { log . fine ( "public int doStartTag(): called" ) ; TagUtils tagUtils = TagUtils . getInstance ( ) ; // Get a reference to the PagedList. PagedList list = ( PagedList ) tagUtils . lookup ( pageContext , name , property , scope ) ; log . fine ( "list = " + list ) ; // Work out what the URL of the action to handle the paging events is. String url ; try { url = tagUtils . computeURL ( pageContext , null , null , null , action , null , null , null , false ) ; } catch ( MalformedURLException e ) { throw new JspException ( "Got malformed URL exception: " , e ) ; } // Optionally render the first page button. renderButton ( renderFirst , 0 , 0 , openDelimFirst , url , firstText , list . getCurrentPage ( ) != 0 ) ; // Optionally render the back button. renderButton ( renderBack , list . getCurrentPage ( ) - 1 , ( ( list . getCurrentPage ( ) - 1 ) < list . getCurrentIndex ( ) ) ? ( list . getCurrentIndex ( ) - maxPages ) : list . getCurrentIndex ( ) , openDelimBack , url , backText , ( list . getCurrentPage ( ) - 1 ) >= 0 ) ; // Render links for pages from the current index to the current index plus the maximum number of pages. int from = list . getCurrentIndex ( ) ; int to = list . getCurrentIndex ( ) + maxPages ; for ( int i = from ; ( i < list . size ( ) ) && ( i < to ) ; i ++ ) { renderButton ( true , i , list . getCurrentIndex ( ) , ( i == list . getCurrentPage ( ) ) ? openDelimCurrent : openDelimNumber , url , "" + ( i + 1 ) , i != list . getCurrentPage ( ) ) ; } // Optionally render a more button. The more button should only be rendered if the current index plus // the maximum number of pages is less than the total number of pages so there are pages beyond those that // have numeric link to them already. renderButton ( ( list . getCurrentIndex ( ) + maxPages ) < list . size ( ) , list . getCurrentPage ( ) + maxPages , list . getCurrentPage ( ) + maxPages , openDelimMore , url , moreText , true ) ; // Optionally render a forward button. renderButton ( renderForward , list . getCurrentPage ( ) + 1 , ( ( list . getCurrentPage ( ) + 1 ) >= ( list . getCurrentIndex ( ) + maxPages ) ) ? ( list . getCurrentIndex ( ) + maxPages ) : list . getCurrentIndex ( ) , openDelimForward , url , forwardText , ( list . getCurrentPage ( ) + 1 ) < list . size ( ) ) ; // Optionally render a last page button. renderButton ( renderLast , list . size ( ) - 1 , ( list . size ( ) / maxPages ) * maxPages , openDelimLast , url , lastText , list . getCurrentPage ( ) != ( list . size ( ) - 1 ) ) ; return SKIP_BODY ; }
Renders the paging control.

@return Always SKIP_BODY;

@throws JspException If the named paged list variable cannot be found.
Renders the paging control .