近期在做一个利用jsf前台展示的项目,使用了x:dataTable展示数据,使用x:dataScroller来分页,运行时却遭遇了如下的exception:
class java.lang.ArithmeticException:/ by zero java.lang.ArithmeticException: / by zero at org.apache.myfaces.custom.datascroller.HtmlDataScroller.getPageIndex()I(HtmlDataScroller.java:228) at org.apache.myfaces.custom.datascroller.HtmlDataScrollerRenderer.setVariables(Ljavax.faces.context.FacesContext;Lorg.apache.myfaces.custom.datascroller.HtmlDataScroller;)V(HtmlDataScrollerRenderer.java:103) at org.apache.myfaces.custom.datascroller.HtmlDataScrollerRenderer.encodeBegin(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(HtmlDataScrollerRenderer.java:215) at javax.faces.component.UIComponentBase.encodeBegin(Ljavax.faces.context.FacesContext;)V(UIComponentBase.java:307) at org.apache.myfaces.renderkit.RendererUtils.renderChild(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:441) at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.renderChildren(Ljavax.faces.context.FacesContext;Ljavax.faces.context.ResponseWriter;Ljavax.faces.component.UIComponent;I)V(HtmlGridRendererBase.java:203) at org.apache.myfaces.renderkit.html.HtmlGridRendererBase.encodeEnd(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(HtmlGridRendererBase.java:85) at javax.faces.component.UIComponentBase.encodeEnd(Ljavax.faces.context.FacesContext;)V(UIComponentBase.java:331) at org.apache.myfaces.renderkit.RendererUtils.renderChild(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:450) at org.apache.myfaces.renderkit.RendererUtils.renderChildren(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:427) at org.apache.myfaces.renderkit.RendererUtils.renderChild(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:448) at org.apache.myfaces.renderkit.RendererUtils.renderChildren(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:427) at org.apache.myfaces.renderkit.RendererUtils.renderChild(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(RendererUtils.java:448) at cn.ccb.tag.panelgrid.HtmlGridRenderer.renderChildren(Ljavax.faces.context.FacesContext;Ljavax.faces.context.ResponseWriter;Ljavax.faces.component.UIComponent;I)V(HtmlGridRenderer.java:263) at cn.ccb.tag.panelgrid.HtmlGridRenderer.encodeEnd(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIComponent;)V(HtmlGridRenderer.java:87) at javax.faces.component.UIComponentBase.encodeEnd(Ljavax.faces.context.FacesContext;)V(UIComponentBase.java:331) at javax.faces.webapp.UIComponentTag.encodeEnd()V(UIComponentTag.java:349) at javax.faces.webapp.UIComponentTag.doEndTag()I(UIComponentTag.java:253) at org.apache.myfaces.taglib.UIComponentBodyTagBase.doEndTag()I(UIComponentBodyTagBase.java:55) at jsp_servlet._page._public.__template1._jspService(Ljavax.servlet.http.HttpServletRequest;Ljavax.servlet.http.HttpServletResponse;)V(__template1.java:405) at weblogic.servlet.jsp.JspBase.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(JspBase.java:33) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(ServletStubImpl.java:315) at weblogic.servlet.internal.RequestDispatcherImpl.forward(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(RequestDispatcherImpl.java:328) at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(Ljava.lang.String;)V(ServletExternalContextImpl.java:415) at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.dispatch(Ljavax.faces.context.ExternalContext;Ljavax.faces.component.UIViewRoot;Ljava.lang.String;)V(JspTilesViewHandlerImpl.java:233) at org.apache.myfaces.application.jsp.JspTilesViewHandlerImpl.renderView(Ljavax.faces.context.FacesContext;Ljavax.faces.component.UIViewRoot;)V(JspTilesViewHandlerImpl.java:219) at org.apache.myfaces.lifecycle.LifecycleImpl.render(Ljavax.faces.context.FacesContext;)V(LifecycleImpl.java:352) at javax.faces.webapp.FacesServlet.service(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;)V(FacesServlet.java:107) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run()Ljava.lang.Object;(ServletStubImpl.java:1006) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(Ljavax.servlet.ServletRequest;Ljavax.servlet.ServletResponse;Lweblogic.servlet.internal.FilterChainImpl;)V(ServletStubImpl.java:419)
》》》》》页面代码 》》》》》》》》》》》》》》》》》》
<x:dataTable value="#{exworkflowlistbb.runningworkflowlist}"
var="workflowlist" id="data" width="95%" >
<h:column>
。。。。。。。
</h:column>
</x:dataTable>
<h:panelGrid columns="1" styleClass="scrollerTable2"
columnClasses="standardTable_ColumnCentered" align="left">
<x:dataScroller id="scroll_1" for="data" fastStep="10"
pageCountVar="pageCount" pageIndexVar="pageIndex"
styleClass="scroller" paginator="true" paginatorMaxPages="9"
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;">
。。。。。。。。
</x:dataScroller>
几经折腾,总算在网上找到解决方法
为x:dataTable标签增加属性“rows”,虽然不是必须的一个属性,但是在这里增加该属性可以解决问题:)