严重: Servlet.service() for servlet jsp threw exception
java.lang.NumberFormatException: For input string: ""+k+""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.valueOf(Unknown Source)
at org.apache.jasper.compiler.JspUtil.coerceToInt(JspUtil.java:765)
at org.apache.jasper.compiler.Generator$GenerateVisitor.convertString(Generator.java:3131)
at org.apache.jasper.compiler.Generator$GenerateVisitor.evaluateAttribute(Generator.java:2946)
at org.apache.jasper.compiler.Generator$GenerateVisitor.generateSetters(Generator.java:3051)
at org.apache.jasper.compiler.Generator$GenerateVisitor.generateCustomStart(Generator.java:2231)
at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1746)
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1530)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2411)
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2417)
at org.apache.jasper.compiler.Node$Root.accept(Node.java:495)
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2361)
at org.apache.jasper.compiler.Generator.generate(Generator.java:3459)
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:231)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:334)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:321)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:328)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)<script type="text/javascript" language="javascript">
 var flag=0;
 var speed=5;
 var MyMar=null;
 var mousedown=false;
 var scroll=null;
 var i=1;
 Direction='Left';
 function out(){
 flag=xold;
 }
 function over(){
 
 }
 var   x=0,   y=0,   xold=0,   yold=0,   xdiff=0,   ydiff=0;
 function   FindXY(loc)   {
 //document.getElementById("demo2").innerHTML=document.getElementById("demo1").innerHTML;
 //window.alert(document.getElementById("demo").scrollLeft);
 //window.alert(document.getElementById("demo1").offsetWidth);
 //window.alert(5*i);
 x   =   (document.layers)   ?   loc.pageX   :   event.clientX; 
 y   =   (document.layers)   ?   loc.pageY   :   event.clientY; 
 xdiff   =   x   -   xold; 
 ydiff   =   y   -   yold;
 //if(document.getElementById("demo").scrollLeft==0){
   //var str="<table border='0' align='center' cellpadding='0' cellspacing='0'><tr valign='top' ><c:forEach items='${requestScope.pro_list}' var='pro' begin='5' end='9'><td align='center' style='border:1px solid #FFFFFF;'><div><img src='${pro.product_pic}' class='listimage' ondblclick='javascript:detail('${pro.pro_no}')'></img><br>${pro.pro_no}</div></td></c:forEach></tr></table>";
   //document.getElementById("demo2").innerHTML=str;
 //}
 if((xdiff<0)&&(document.getElementById("demo2").offsetWidth-document.getElementById("demo").scrollLeft<=0)){
 document.getElementById("demo").scrollLeft=0;
 document.getElementById("demo1").innerHTML=document.getElementById("demo2").innerHTML;
 //window.alert(5*i);
 var k=(5*i).toString();
 var str="<table border='0' align='center' cellpadding='0' cellspacing='0'><tr valign='top' ><c:forEach items='${requestScope.pro_list}' var='pro' begin='"+k+"' end='"+(5*i+4).toString()+"'><td align='center' style='border:1px solid #FFFFFF;'><div><img src='${pro.product_pic}' class='listimage' ondblclick='javascript:detail('${pro.pro_no}')'></img><br>${pro.pro_no}</div></td></c:forEach></tr></table>";
 document.getElementById("demo2").innerHTML=str;
 }
 if((xdiff>0)&&(document.getElementById("demo").scrollLeft<=0)){
 document.getElementById("demo2").innerHTML=document.getElementById("demo1").innerHTML;
 var str="<table border='0' align='center' cellpadding='0' cellspacing='0'><tr valign='top' ><c:forEach items='${requestScope.pro_list}' var='pro' begin='"+5*(i-1).toString()+"' end='"+(5*(i-1)+4).toString()+"'><td align='center' style='border:1px solid #FFFFFF;'><div><img src='${pro.product_pic}' class='listimage' ondblclick='javascript:detail('${pro.pro_no}')'></img><br>${pro.pro_no}</div></td></c:forEach></tr></table>";
 document.getElementById("demo1").innerHTML=str;
 document.getElementById("demo").scrollLeft=document.getElementById("demo2").offsetWidth;
 } if(flag==0){
 //window.alert(xdiff);
   document.getElementById("demo").scrollLeft=document.getElementById("demo").scrollLeft-xdiff;
   //if(document.getElementById("demo").scrollLeft!=0)
   //window.alert(document.getElementById("demo").scrollWidth);
   //window.alert(document.getElementById("demo").scrollWidth+" "+document.getElementById("demo").offsetWidth);
   
 }
 //if(document.getElementById("demo1").offsetWidth-document.getElementById("demo").scrollLeft<=1000){
   // var str="<table border='0' align='center' cellpadding='0' cellspacing='0'><tr valign='top' ><c:forEach items='${requestScope.pro_list}' var='pro' begin='0' end='4'><td align='center' style='border:1px solid #FFFFFF;'><div><img src='${pro.product_pic}' class='listimage' ondblclick='javascript:detail('${pro.pro_no}')'></img><br>${pro.pro_no}</div></td></c:forEach></tr></table>";
   // document.getElementById("demo2").innerHTML=str;
    //window.alert(document.getElementById("demo1").offsetWidth);
    //window.alert(document.getElementById("demo").scrollWidth);
 //}
 xold   =   x; 
 yold   =   y;
 flag=0;
 }
</script>

解决方案 »

  1.   

    你要搞清楚,java代码是先执行的,怎么能使用客户端的变量k呢???
      

  2.   

    使用js创建table,而不是<c:forEach
      

  3.   

    就是js创建的HTML元素中不能包含C标签
      

  4.   

    好像可以包含C标签啊!我之前也是这么写的,知识把变量K以及其他几个变量换成一个具体的数!
    就是下面这样:
    var str="<table border='0' align='center' cellpadding='0' cellspacing='0'><tr valign='top' ><c:forEach items='${requestScope.pro_list}' var='pro' begin='0' end='4'><td align='center' style='border:1px solid #FFFFFF;'><div><img src='${pro.product_pic}' class='listimage' ondblclick='javascript:detail('${pro.pro_no}')'></img><br>${pro.pro_no}</div></td></c:forEach></tr></table>";
      

  5.   

    <c:forEach这些是服务器端标签,你放js里面怎么执行啊
      

  6.   

    放在js里是没问题的吧,只是要保证,标签里执行结果是正确的js代码。
      

  7.   

    如果我要在js用C标签的话,那请问应该怎么写?谢谢!
      

  8.   

    要在js用C标签的话?
    不能使用,根本无从谈怎么写
      

  9.   

    js中使用,只能全部是服务器的变量,生成的内容不带换行,var x = "<c:forEach  ...";
    这样是可以的,确保生成的结果是符合js语法的