Skip to content
September 7, 2013 / Pedro Gabriel

How to create your own ADF Table Pagination

Imagine you need to consume some data that has its own pagination control mechanism and you want to display it on an ADF Table with your own look and feel pagination control to get the next, previous, first and last page. The example I am presenting today can be implemented for any VO you have and the ADF Table with the custom pagination is based on a template that allows you to reuse it across the entire application. You can get more in-depth insight about “Global Template Button Strategy” here.

You can download this example here: ADFTablePagination.

The First step you need to do is to create a java interface defining the pagination operations like this:

public interface IPagination {

    /**
     * Get current Page.
     * @return the current page.
     */
    public int getCurrentPage();

    /**
     * Get the number of pages for the result list.
     * @return the number of pages for the result list.
     */
    public int getTotalPages();

    /**
     * Get the next page of results.
     * @return the next page of results.
     */
    public int getNext();

    /**
     * Get the previous page of results.
     * @return the previous page of results.
     */
    public int getPrevious();

    /**
     * Get the last page of results.
     * @return the last page of results.
     */
    public int getLast();

    /**
     * Get the first page of results.
     * @return the first page of results.
     */
    public int getFirst();

    /**
     * Indicate if there are more elements.
     * @return True - there are more elements,
     *         False - there aren't no more elements.
     */
    public boolean hasNextElement();
}

Then make sure your VO implements the “IPagination” interface like this:

// ---------------------------------------------------------------------
// ---    File generated by Oracle ADF Business Components Design Time.
// ---    Fri Jul 12 18:32:49 BST 2013
// ---    Custom code may be added to this class.
// ---    Warning: Do not modify method signatures of generated methods.
// ---------------------------------------------------------------------
public class PersonVOImpl extends WebServiceViewObjectImpl implements IPagination,
                                                                      PersonVO {

    private int page = 0;

    //Get the total pages from the service.
    //In this example we only have 4 pages.
    private int totalPages = 4;

    /**
     * This is the default constructor (do not remove).
     */
    public PersonVOImpl() {
    }

    /**
     * executeQueryForCollection - overridden for custom java data source support.
     */
    protected void executeQueryForCollection(Object qc, Object[] params,
                                             int noUserParams) {
        this.executeWebServiceQuery(new Hashtable());
        super.executeQueryForCollection(qc, params, noUserParams);
    }

    /**
     * hasNextForCollection - overridden for custom java data source support.
     */
    protected boolean hasNextForCollection(Object qc) {
        boolean bRet = super.hasNextForCollection(qc);
        return bRet;
    }

    /**
     * createRowFromResultSet - overridden for custom java data source support.
     */
    protected ViewRowImpl createRowFromResultSet(Object qc,
                                                 ResultSet resultSet) {
        ViewRowImpl value = super.createRowFromResultSet(qc, resultSet);
        return value;
    }

    /**
     * getQueryHitCount - overridden for custom java data source support.
     */
    public long getQueryHitCount(ViewRowSetImpl viewRowSet) {
        long value = super.getQueryHitCount(viewRowSet);
        return value;
    }

    protected void executeWebServiceQuery(Hashtable parameters) {
        List persons = new ArrayList();

        //This is just dummy data in order to emulate the pagination control mechanism you might have
        if (page == 0) {
            PersonPOJO person1 = new PersonPOJO("Pedro", "Gabriel", "28", "1");
            persons.add(person1);
            PersonPOJO person2 = new PersonPOJO("Steve", "Abbey", "15", "2");
            persons.add(person2);
            PersonPOJO person3 = new PersonPOJO("Andre", "Spiro", "30", "3");
            persons.add(person3);
            PersonPOJO person4 = new PersonPOJO("John", "Bertie", "45", "4");
            persons.add(person4);
            PersonPOJO person5 = new PersonPOJO("Andrew", "Alexander ", "23", "5");
            persons.add(person5);
        }
        else if (page == 1) {
            PersonPOJO person1 = new PersonPOJO("Addams", "Agnew", "28", "1");
            persons.add(person1);
            PersonPOJO person2 = new PersonPOJO("Nadir", "Samuel", "15", "2");
            persons.add(person2);
            PersonPOJO person3 = new PersonPOJO("Eadmund", "BAILA", "30", "3");
            persons.add(person3);
            PersonPOJO person4 = new PersonPOJO("Richard", "HABIBA", "45", "4");
            persons.add(person4);
            PersonPOJO person5 = new PersonPOJO("Helen", "HADRIAN ", "23", "5");
            persons.add(person5);
        }
        else if (page == 2) {
            PersonPOJO person1 = new PersonPOJO("Anthony", "Arslan", "28", "1");
            persons.add(person1);
            PersonPOJO person2 = new PersonPOJO("Austin", "Luciano", "15", "2");
            persons.add(person2);
            PersonPOJO person3 = new PersonPOJO("Blair", "Tony", "30", "3");
            persons.add(person3);
            PersonPOJO person4 = new PersonPOJO("Rebecca", "Neil", "45", "4");
            persons.add(person4);
            PersonPOJO person5 = new PersonPOJO("David", "Bowie ", "23", "5");
            persons.add(person5);
        }
        else if (page == 3) {
            PersonPOJO person1 = new PersonPOJO("Brown", "Butler", "28", "1");
            persons.add(person1);
            PersonPOJO person2 = new PersonPOJO("Carter", "Howard", "15", "2");
            persons.add(person2);
            PersonPOJO person3 = new PersonPOJO("Alexis", "Dick", "30", "3");
            persons.add(person3);
            PersonPOJO person4 = new PersonPOJO("Robert", "Cather", "45", "4");
            persons.add(person4);
            PersonPOJO person5 = new PersonPOJO("Agatha", "Christie ", "23", "5");
            persons.add(person5);
        }

        this.setMyRowset(persons.toArray());
    }

    protected void initializeAttributeMappings() {
        String classe = "PersonPOJO";
        this.getAttributeMappings().put("FirstName", classe + ".firstName");
        this.getAttributeMappings().put("LastName", classe + ".lastName");
        this.getAttributeMappings().put("Age", classe + ".age");
        this.getAttributeMappings().put("Id", classe + ".id");
    }

    public int getCurrentPage() {
        return page;
    }

    public int getTotalPages() {
        return totalPages;
    }

    public int getNext() {
        if (page < totalPages - 1) {                           
            page ++;                           
            executeQuery();                  
        }              
        
        return page;          
    }               

    public int getPrevious() {                  
        if (page > 0) {
            page --;
            executeQuery();
        }

        return page;
    }

    public int getLast() {
        page = totalPages - 1;
        executeQuery();

        return page;
    }

    public int getFirst() {
        page = 0;
        executeQuery();

        return page;
    }

    public boolean hasNextElement() {
        if (page < totalPages - 1)
            return true;
        else
            return false;
    }
}

Create the template for the table with the next, previous, first and last buttons.

TablePaginationTemplate

Implement the “TablePaginationTemplateInterface” and “TablePaginationTemplateBean”. This two classes pass the control of the buttons from the template to the page’s managed bean.

public interface TablePaginationTemplateInterface {

    public void getFirst(ActionEvent actionEvent);

    public void getPrevious(ActionEvent actionEvent);

    public void getNext(ActionEvent actionEvent);

    public void getLast(ActionEvent actionEvent);

    public Object getCurrentPage();

    public Object getTotalPages();
}

 

public class TablePaginationTemplateBean implements TablePaginationTemplateInterface {

private TablePaginationTemplateInterface paginationTemplate = null;

public TablePaginationTemplateBean() {
super();
}

public void getFirst(ActionEvent actionEvent) {
TablePaginationTemplateInterface bean = getBean();
bean.getFirst(actionEvent);
}

public void getPrevious(ActionEvent actionEvent) {
TablePaginationTemplateInterface bean = getBean();
bean.getPrevious(actionEvent);
}

public void getNext(ActionEvent actionEvent) {
TablePaginationTemplateInterface bean = getBean();
bean.getNext(actionEvent);
}

public void getLast(ActionEvent actionEvent) {
TablePaginationTemplateInterface bean = getBean();
bean.getLast(actionEvent);
}

public Object getCurrentPage() {
TablePaginationTemplateInterface bean = getBean();
return bean.getCurrentPage();
}

public Object getTotalPages() {
TablePaginationTemplateInterface bean = getBean();
return bean.getTotalPages();
}

private TablePaginationTemplateInterface getBean(){
if (paginationTemplate == null) {
FacesContext fctx = FacesContext.getCurrentInstance();
ELContext elctx = fctx.getELContext();
ExpressionFactory exprFactory =
fctx.getApplication().getExpressionFactory();

ValueExpression ve = exprFactory.createValueExpression(elctx, "#{attrs.tablePaginationBean}", Object.class);
Object valueObject = ve.getValue(elctx);
if (valueObject != null) {
paginationTemplate = (TablePaginationTemplateInterface)valueObject;
}
}
return paginationTemplate;
}
}

On the “Bindings” of the page that you have your table add the methods you’ve implemented for your VO.

TablePaginationBindings

Your page would looks like something like this:

TablePagination

The page’s managed bean is the one who calls the next, previous, first and last operations.

public class TablePaginationBean implements TablePaginationTemplateInterface {
    
    public TablePaginationBean() {
    }

    public void getFirst(ActionEvent actionEvent) {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getFirst");
        Object _result = operation.execute();
        System.out.println("get first");
    }

    public void getPrevious(ActionEvent actionEvent) {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getPrevious");
        Object _result = operation.execute();
        System.out.println("get previous");
    }

    public void getNext(ActionEvent actionEvent) {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getNext");
        Object _result = operation.execute();
        System.out.println("get next");
    }

    public void getLast(ActionEvent actionEvent) {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getLast");
        Object _result = operation.execute();
        System.out.println("get last");
    }
    
    public Object getCurrentPage() {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getCurrentPage");
        System.out.println("get Current Page");
        return operation.execute();
    }
    
    public Object getTotalPages() {
        BindingContainer bindings = ADFUtils.getBindings();
        OperationBinding operation = bindings.getOperationBinding("getTotalPages");
        System.out.println("get Total Pages");
        return operation.execute();
    }
}

The final result looks like this:
TablePaginationResult

Advertisements

2 Comments

Leave a Comment
  1. Shay Shmeltzer / Sep 9 2013 6:49 pm

    Probably worth mentioning that the newer versions of ADF (12c, 11.1.1.7) have built in support for pagination in a table:
    http://www.oracle.com/technetwork/developer-tools/jdev/index-088099.html

  2. Casual Coder / Jun 17 2014 5:14 am

    Hi,
    I’m using JDEV 11.1.1.7 and JSF 1.2

    I’m getting NullPointerException in the line ValueExpression ve = exprFactory.createValueExpression(elctx, “#{attrs.tablePaginationBean}”, Object.class);

    stacktrace below:
    javax.el.ELException: java.lang.NullPointerException
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:266)
    at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
    at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
    at com.sun.el.parser.AstValue.getValue(Unknown Source)
    at com.sun.el.parser.AstPlus.getValue(Unknown Source)
    at com.sun.el.parser.AstDeferredExpression.getValue(Unknown Source)
    at com.sun.el.parser.AstCompositeExpression.getValue(Unknown Source)
    at com.sun.el.ValueExpressionImpl.getValue(Unknown Source)
    at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
    at oracle.adfinternal.view.faces.renderkit.rich.ValueRenderer.getValue(ValueRenderer.java:191)
    at oracle.adfinternal.view.faces.renderkit.rich.SimpleInputBaseRenderer.renderContentStyleAttributes(SimpleInputBaseRenderer.java:513)
    at oracle.adfinternal.view.faces.renderkit.rich.SimpleInputBaseRenderer.renderNonElementContent(SimpleInputBaseRenderer.java:398)
    at oracle.adfinternal.view.faces.renderkit.rich.FormInputRenderer.encodeAllAsNonElement(FormInputRenderer.java:300)
    at oracle.adfinternal.view.faces.renderkit.rich.FormElementRenderer.encodeAll(FormElementRenderer.java:160)
    at oracle.adf.view.rich.render.RichRenderer.delegateRenderer(RichRenderer.java:1663)
    at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.renderFieldCellContents(LabeledInputRenderer.java:228)
    at oracle.adfinternal.view.faces.renderkit.rich.LabelLayoutRenderer.renderFieldCell(LabelLayoutRenderer.java:528)
    at oracle.adfinternal.view.faces.renderkit.rich.LabelLayoutRenderer.encodeAll(LabelLayoutRenderer.java:305)
    at oracle.adfinternal.view.faces.renderkit.rich.LabeledInputRenderer.encodeAll(LabeledInputRenderer.java:215)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeHorizontalChild(PanelGroupLayoutRenderer.java:499)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$100(PanelGroupLayoutRenderer.java:30)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:659)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
    at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
    at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
    at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:432)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:682)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
    at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
    at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
    at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeBottomFacet(PanelStretchLayoutRenderer.java:793)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer._encodeHorizontalPane(PanelStretchLayoutRenderer.java:1259)
    at oracle.adfinternal.view.faces.renderkit.rich.PanelStretchLayoutRenderer.encodeAll(PanelStretchLayoutRenderer.java:315)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:438)
    at oracle.adfinternal.view.faces.renderkit.rich.PageTemplateRenderer.encodeAll(PageTemplateRenderer.java:69)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.encodeEnd(ContextSwitchingComponent.java:155)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:438)
    at oracle.adfinternal.view.faces.renderkit.rich.FormRenderer.encodeAll(FormRenderer.java:220)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
    at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeAllChildren(CoreRenderer.java:438)
    at oracle.adfinternal.view.faces.renderkit.rich.DocumentRenderer.encodeAll(DocumentRenderer.java:1341)
    at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
    at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
    at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
    at com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:266)
    at com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:197)
    at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:189)
    at org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:193)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._renderResponse(LifecycleImpl.java:979)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:408)
    at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:237)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:128)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
    at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
    at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
    at java.security.AccessController.doPrivileged(Native Method)
    at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
    at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
    at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
    at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
    at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: java.lang.NullPointerException
    at common.TablePaginationTemplateBean.getCurrentPage(TablePaginationTemplateBean.java:40)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:261)
    … 129 more

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: