- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
到现在为止,我有一个 JSF 托管 bean,它带有 LazyDataModel
看起来像下面这样。
@Controller
@Scope("request")
public final class StateManagedBean extends LazyDataModel<StateTable>
{
@Autowired
private StateService stateService;
private final List<StateTable>list;
private List<StateTable> selectedValues;
private List<StateTable> filteredValues;
private Long id;
public StateManagedBean()
{
list=null;
stateService=null;
}
@Override
public List<StateTable> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters)
{
int rowCount = stateService.rowCount().intValue();
int currentPage = currentPage(first, pageSize);
if(rowCount<=currentPage*pageSize-pageSize)
{
first-=pageSize;
}
if(pageSize<=0)
{
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "Error!", "The page size supplied is incorrect. The current operation has been rejected.");
FacesContext.getCurrentInstance().addMessage(null, message);
return Collections.emptyList();
}
if(filters!=null&&!filters.isEmpty())
{
List<StateTable> stateTables = stateService.getList(first, pageSize, sortOrder, sortField, filters);
setRowCount(stateTables.size());
return stateTables;
}
setRowCount(rowCount);
return stateService.getList(first, pageSize, sortOrder, sortField);
}
}
@Controller
这样的注释。 ,
@ManagedBean
,
@RequestScoped
和
@Autowired
(它与 Spring 3.2.2 集成)。
faces-config.xml
中配置了这个 JSF 托管 bean。文件之类的,
<application>
<el-resolver>
org.springframework.web.jsf.el.SpringBeanFacesELResolver
</el-resolver>
</application>
<managed-bean>
<managed-bean-name>stateManagedBean</managed-bean-name>
<managed-bean-class>admin.mangedbean.StateManagedBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>stateService</property-name>
<value>#{stateService}</value>
</managed-property>
<managed-property>
<property-name>id</property-name>
<value>#{param.id}</value>
<property-class>java.lang.Long</property-class>
</managed-property>
</managed-bean>
INFO: java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at org.primefaces.component.api.UIData.setRowModel(UIData.java:409)
at org.primefaces.component.api.UIData.setRowIndex(UIData.java:401)
at org.primefaces.component.api.UIData.processChildren(UIData.java:289)
at org.primefaces.component.api.UIData.processPhase(UIData.java:261)
at org.primefaces.component.api.UIData.processDecodes(UIData.java:227)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:506)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.primefaces.component.api.UIData.visitTree(UIData.java:639)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:931)
at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
May 16, 2013 9:11:06 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at org.primefaces.component.api.UIData.setRowModel(UIData.java:409)
at org.primefaces.component.api.UIData.setRowIndex(UIData.java:401)
at org.primefaces.component.api.UIData.processChildren(UIData.java:289)
at org.primefaces.component.api.UIData.processPhase(UIData.java:261)
at org.primefaces.component.api.UIData.processValidators(UIData.java:241)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:508)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.primefaces.component.api.UIData.visitTree(UIData.java:639)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1170)
at com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
May 16, 2013 9:11:06 PM com.sun.faces.context.PartialViewContextImpl processPartial
INFO: java.lang.ArithmeticException: / by zero
java.lang.ArithmeticException: / by zero
at org.primefaces.model.LazyDataModel.setRowIndex(LazyDataModel.java:62)
at org.primefaces.component.api.UIData.setRowModel(UIData.java:409)
at org.primefaces.component.api.UIData.setRowIndex(UIData.java:401)
at org.primefaces.component.api.UIData.processChildren(UIData.java:289)
at org.primefaces.component.api.UIData.processPhase(UIData.java:261)
at org.primefaces.component.api.UIData.processUpdates(UIData.java:253)
at org.primefaces.component.datatable.DataTable.processUpdates(DataTable.java:550)
at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:510)
at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
at org.primefaces.component.api.UIData.visitTree(UIData.java:639)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIForm.visitTree(UIForm.java:371)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1623)
at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:376)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:252)
at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:183)
at javax.faces.component.UIViewRoot.processUpdates(UIViewRoot.java:1229)
at com.sun.faces.lifecycle.UpdateModelValuesPhase.execute(UpdateModelValuesPhase.java:78)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1822)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
setRowIndex()
时异常才会消失托管 bean 中的方法,如下所示。
@Override
public void setRowIndex(int rowIndex)
{
if(rowIndex==-1||getPageSize()==0)
{
super.setRowIndex(-1);
}
else
{
super.setRowIndex(rowIndex%getPageSize());
}
}
setRowIndex()
是否足够?这种方法?
最佳答案
尝试添加 setPageSize(pageSize);
内载荷法。结果会是这样:
@Override
public List<StateTable> load(int first, int pageSize, String sortField, SortOrder sortOrder, Map<String, String> filters)
{
int rowCount = stateService.rowCount().intValue();
int currentPage = currentPage(first, pageSize);
if(rowCount<=currentPage*pageSize-pageSize)
{
first-=pageSize;
}
if(pageSize<=0)
{
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_FATAL, "Error!", "The page size supplied is incorrect. The current operation has been rejected.");
FacesContext.getCurrentInstance().addMessage(null, message);
return Collections.emptyList();
}
if(filters!=null&&!filters.isEmpty())
{
List<StateTable> stateTables = stateService.getList(first, pageSize, sortOrder, sortField, filters);
setRowCount(stateTables.size());
return stateTables;
}
setRowCount(rowCount);
setPageSize(pageSize); //add this line
return stateService.getList(first, pageSize, sortOrder, sortField);
}
关于jsf - java.lang.ArithmeticException :/by zero with Primefaces LazyDataModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16592030/
我已经为数据表实现了 LazyLoading。当我使用分页浏览数据表时,出现以下异常。 com.sun.faces.context.PartialViewContextImpl processPart
这个问题已经有答案了: Operator precedence in Java (3 个回答) 已关闭 4 年前。 当我尝试编写真值表时,我试图找出算法,然后我发现了一个可行的算法。但是现在我不明白为
该程序可以正确计算带分数。我希望 while 循环在输入两个零后终止。但是,当我输入由空格分隔的两个零时,我得到“Exception in thread "main"java.lang.Arithme
我有一个 JAVA(在 Android 上运行)方法,它偶尔会因被零除而捕获 ArithmeticException,尽管变量 inSampleSize 在循环之前设置为 1,并且每次只乘以 2。以下
我正在用 Java 做这个数独求解器,由于某种原因,我的代码中有一个我无法修复的错误。我的代码有一个 guess 函数,它在检查每个框中的 1-9 数字的同时检查数字是否已经写入。 错误在行中: e
这个问题在这里已经有了答案: try-catch for division by zero (7 个答案) 关闭 7 年前。 我一定是做了什么蠢事。但我似乎无法弄清楚为什么这个简单的代码不起作用。
我想使用标准的 java MonetaryConversions 来转换货币。 乍一看它工作得很好而且简单: @Test public void testConversion()
@Override public StreamObserver mdtDialout(StreamObserver responseObserver) { return new StreamO
我想修改ArithmeticException输出消息。因此,为此我做了一些实验。我通过 ExtenderClass 类扩展了 ArithmeticException 类。这个问题的重点不仅在于找到修
为什么这段代码不抛出ArithmeticException?看看: public class NewClass { public static void main(String[] args)
该方法的目的是迭代一个名为 grid[][] 的二维整数数组,并根据最大和最小值将整数转换为 100 到 250 之间的较小范围(原来的最小值变为 100 ,原来的最大值变成250,中间的一切都分别计
我在解决从 Student 类中的 getAverageScore() 方法中获取的 ArithmeticException 时遇到问题。我正在尝试编写一个程序来读取以下文本文件 scores.txt
我正在使用计算器并使用 NetBeans GUI 生成器,因此它可能有点不清楚和令人困惑。(完整代码 http://pastebin.com/ZLcM74ZQ ,因为它太长了) package rec
我正在研究一种算法来检查数字是否为质数,并且需要处理非常大的数字,因此我正在使用 BigInteger 类。问题是抛出此异常ArithmeticException BigInteger 会溢出支持的范
我正在用JUnit练习,这是我想测试的简单方法 public float divide(int a, int b){ return (float)a/(float)b; } 这是测试(Ma
我对整个捕获处理异常概念有点陌生,我想知道为什么抛出 ArithmeticException 不会在退出时产生异常错误消息(在本例中/为零),而是在编译期间产生异常错误消息。 不应该正常编译然后在屏幕
我们在客户机器上的以下行中得到一个ArithmeticException(算术运算中上溢或下溢。)。我们无法在任何 PC(客户或我们的)上复制它: var actualFullness = (byte
下面的代码执行时没有任何歧义的编译错误,输出是“ArithmeticException”。各位大侠能帮我看看原因吗。 class Test { public static void main(
我正在尝试在 Android 应用程序中实现 RSA 算法。我正在使用 java.math.BigInteger.modPow() 函数进行加密/解密,它适用于我的计算机(Windows 和 Xubu
这只发生在 x64 版本中 An unhandled exception of type 'System.ArithmeticException' occurred in WindowsBase.dl
我是一名优秀的程序员,十分优秀!