小弟现在在做的这个功能是希望通过调用JavaScript脚本而不通过servlet层在JSP页实现无刷新实现分页,我这个JSP页面本身使用了JavaScript代码实现点击3个DIV层触发显示,即一个Block,另外两个none,类似现在网站上的信息切换功能,但是如果我通过servlet层做分页,当点击上一页或下一页等分页按钮,页面就会跳转回原本刚刚跳入的该JSP页面,所以我使用下面的JS代码希望通过JS实现分页,但出现下面错误:严重: Servlet.service() for servlet jsp threw exception
java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:468)
at java.lang.Integer.parseInt(Integer.java:497)
at org.apache.jsp.memeberCenter.releaseTopic_jsp._jspService(releaseTopic_jsp.java:570)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.QuestionNet.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
JS代码:<INPUT type=hidden value=<%=pageSize%> name=pageSize/>
<INPUT type=hidden value=<%=pageNo%> name=pageNo/> 
<INPUT type=hidden value=<%=totalPage%> name=pageCount/><SCRIPT> function doSynchronization(change)
{
var fields = document.all.tags("input");
var re =  new RegExp("^([0-9]+)$");
if(change.value.search(re) == -1)
{
msg("请输入正整数,谢谢合作!");
if(change.name=="pageNum")
{
change.value=change.form.pageNo.value;
}else{
change.value=change.form.pageSize.value;
}
return false;
}
for(var i=0;i< fields.length;i++)
{
if(fields[i].name.indexOf("page")==-1) continue;
if(change.name.indexOf(fields[i].name)!=-1)
{
fields[i].value=change.value;
}
}
}
function doNextPage(srcObj)
{
    srcObj.form.returnValue = false;
    var pageNo = srcObj.form.pageNo.value;
    if(pageNo - 0 < (srcObj.form.pageCount.value - 0))
    {
     srcObj.form.pageNo.value++;
     //srcObj.form.operate.value = srcObj.form.operate.defaultValue;
srcObj.form.submit();
}else{
msg("当前已是最后一页!");
}
return false;
}

function doPrePage(srcObj)
{
    var pageNo = srcObj.form.pageNo.value;
    if(pageNo - 0 > 1)
    {
     srcObj.form.pageNo.value --;
     //srcObj.form.operate.value = srcObj.form.operate.defaultValue;
srcObj.form.submit();
}else{
msg("当前已是第一页!");
}
return false;
}
function doFirstPage(srcObj)
{
    if(srcObj.form.pageNo.value-0 == 1)
    {
    msg("当前已是第一页!");
    return false;
    }
    srcObj.form.pageNo.value = 1;
    //srcObj.form.operate.value = srcObj.form.operate.defaultValue;
srcObj.form.submit();
}
function doLastPage(srcObj)
{
    if(srcObj.form.pageNo.value-0 == srcObj.form.pageCount.value-0)
    {
    msg("当前已是最后一页!");
    return false;
    }
    srcObj.form.pageNo.value = srcObj.form.pageCount.value;
    //srcObj.form.operate.value = srcObj.form.operate.defaultValue;
srcObj.form.submit();
return false;
}
</SCRIPT>小弟在做毕业设计,这个问题出得非常棘手,请各位前辈,高手帮帮小弟!

解决方案 »

  1.   

    从异常看肯定是无法将string转化为数字,因为你输入的string是“”。
    你看下releaseTopic_jsp.java这个文件570行,这个文件到tomcat的work目录下去搜。
      

  2.   

    空字符串不能转换成数字的异常,学会用eclipse的调试功能来定位错误再说吧。
      

  3.   

    没有servlet或者aciton也看不出,应该是你的某个参数没有传过来,导致要转换成数字的字符串要转换成数字 变成了空字符串要转换成数字
      

  4.   

    你在js中用alert把分页的数字显示出来,看看是得到的时候出问题了,还是写的时候出问题了