<table width="1150" cellpadding="0" cellspacing="0" id="tb">
<tr>
<td>材料编码</td><td>零件号</td><td>材料名称</td><td>单位</td><td>进价</td><td>入库数量</td><td>入库金额</td><td>销售金额</td><td>仓库</td><td>入库日期</td><td>车型</td>
</tr>
<TR>
<td><input type="text" name="clnumber"></td>
<td><input type="text" name="ljnumber"></td>
<td><input type="text" name="clname"></td>
<td><input type="text" name="dw"></td>
<td><input type="text" name="jj"></td>
<td><input type="text" name="rknumber"></td>
<td><input type="text" name="rkje"></td>
<td><input type="text" name="xsje"></td>
<td><input type="text" name="ck"></td>
<td><input type="text" name="rktime"></td>
<td><input type="text" name="cartype"></td>
</TR>
</table>
<script type="text/javascript">
function addRow()
{
 var newTr=tb.insertRow(); var newTd1=newTr.insertCell();
 var newTd2=newTr.insertCell();
var newTd3=newTr.insertCell();
var newTd4=newTr.insertCell();
var newTd5=newTr.insertCell();
var newTd6=newTr.insertCell();
var newTd7=newTr.insertCell();
var newTd8=newTr.insertCell();
var newTd9=newTr.insertCell();
var newTd10=newTr.insertCell();
var newTd11=newTr.insertCell();
newTd1.innerHTML ="<input type='text' name='clnumber'/>";
newTd2.innerHTML ="<input type='text' name='ljnumber'/>";
newTd3.innerHTML ="<input type='text' name='clname'/>";
newTd4.innerHTML ="<input type='text' name='dw'/>";
newTd5.innerHTML ="<input type='text' name='jj'/>";
newTd6.innerHTML ="<input type='text' name='rknumber'/>";
newTd7.innerHTML ="<input type='text' name='rkje'/>";
newTd8.innerHTML ="<input type='text' name='xsje'/>";
newTd9.innerHTML ="<input type='text' name='ck'/>";
newTd10.innerHTML ="<input type='text' name='rktime'/>";
newTd11.innerHTML ="<input type='text' name='cartype'/>";
}
</script> 
<table>
<tr><td class="a"><input type="button" value="再加一列" onClick="addRow()" ></td></tr>
</table>将这个form里面的数据传到另一个JSP页面:<%
String[] clnumber=request.getParameterValues("clnumber");
String[] ljnumber=request.getParameterValues("ljnumber");
String[] clname=request.getParameterValues("clname");
String[] dw=request.getParameterValues("dw");
String[] jj=request.getParameterValues("jj");
String[] rknumber=request.getParameterValues("rknumber");
String[] rkje=request.getParameterValues("rkje");
String[] ck=request.getParameterValues("ck");
String[] rktime=request.getParameterValues("rktime");
String[] xsje=request.getParameterValues("xsje");
String[] cartype=request.getParameterValues("cartype");
String gysname=request.getParameter("gysname");
String fkje=request.getParameter("fkje");
String fkfs=request.getParameter("fkfs");
String rkdannumber=request.getParameter("rkdannumber");int size = ljnumber.length;for(int i=0;i<size;i++)
{
  boolean insFlag = false;
  db db1 = new db();
  insFlag = db1.insertRow("insert into bjrk(rkdannumber,clnumber,ljnumber,clname,dw,jj,rknumber,rkje,xsje,ck,fkje,fkfs,rktime,cartype,gysname)values('"+rkdannumber+"','"+clnumber[i]+"','"+ljnumber[i]+"','"+clname[i]+"','"+dw[i]+"','"+jj[i]+"','"+rknumber[i]+"','"+rkje[i]+"','"+xsje[i]+"','"+ck[i]+"','"+fkje+"','"+fkfs+"','"+rktime[i]+"','"+cartype[i]+"','"+gysname+"')"); 
if(insFlag)
{
%>
<script language="javascript">
 alert("车辆登记操作成功!");
  window.location.href="cldj_main.jsp";
</script>
<%
}
else
{
%>
<script language="javascript">
 alert("车辆登记操作失败!");
  window.location.href="cldj_main.jsp ";
</script>
<%
}
}
%>红色处报错 java.lang.NullPointerException
可是我明明已经赋值了 这是怎么回事???

解决方案 »

  1.   


    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="com.java.db.Page"%>
    <%@ page import="com.java.db.db"%>
    <%@ page session="true" %>
    <html>
    <head>
    <title>时尚酒店管理信息系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <meta http-equiv="pragma" content="no-cache">
    <style type="text/css">
    *{
    margin:0px;
    padding:0px;}
    TD{
    border:1PX solid #000;
    font-size:12px;
    font-weight:bolder;}
    /*INPUT {
    background-color:#CCC;*/}
    .a{
    border:1px solid #CCC;}</style>
    <script type="text/javascript">
    function addBj()
    {
      document.form1.action="bjrk_add.jsp";
    document.form1.submit();
    }
    </script></head>
    <body bgcolor="#CCCCCC">
    <iframe name="ifrm" style="display:none"></iframe>
    <form name="form1">
    <table width="1150" cellpadding="0" cellspacing="0" id="tb">
    <tr>
    <td>材料编码</td><td>零件号</td><td>材料名称</td><td>单位</td><td>进价</td><td>入库数量</td><td>入库金额</td><td>销售金额</td><td>仓库</td><td>入库日期</td><td>车型</td>
    </tr>
    <TR>
    <td><input type="text" name="clnumber"></td>
    <td><input type="text" name="ljnumber"></td>
    <td><input type="text" name="clname"></td>
    <td><input type="text" name="dw"></td>
    <td><input type="text" name="jj"></td>
    <td><input type="text" name="rknumber"></td>
    <td><input type="text" name="rkje"></td>
    <td><input type="text" name="xsje"></td>
    <td><input type="text" name="ck"></td>
    <td><input type="text" name="rktime"></td>
    <td><input type="text" name="cartype"></td>
    </TR>
    </table>
    <script type="text/javascript">
    function addRow()
    {
     var newTr=tb.insertRow(); var newTd1=newTr.insertCell();
     var newTd2=newTr.insertCell();
    var newTd3=newTr.insertCell();
    var newTd4=newTr.insertCell();
    var newTd5=newTr.insertCell();
    var newTd6=newTr.insertCell();
    var newTd7=newTr.insertCell();
    var newTd8=newTr.insertCell();
    var newTd9=newTr.insertCell();
    var newTd10=newTr.insertCell();
    var newTd11=newTr.insertCell();
    newTd1.innerHTML ="<input type='text' name='clnumber'/>";
    newTd2.innerHTML ="<input type='text' name='ljnumber'/>";
    newTd3.innerHTML ="<input type='text' name='clname'/>";
    newTd4.innerHTML ="<input type='text' name='dw'/>";
    newTd5.innerHTML ="<input type='text' name='jj'/>";
    newTd6.innerHTML ="<input type='text' name='rknumber'/>";
    newTd7.innerHTML ="<input type='text' name='rkje'/>";
    newTd8.innerHTML ="<input type='text' name='xsje'/>";
    newTd9.innerHTML ="<input type='text' name='ck'/>";
    newTd10.innerHTML ="<input type='text' name='rktime'/>";
    newTd11.innerHTML ="<input type='text' name='cartype'/>";
    }
    </script> 
    <table>
    <tr><td class="a"><input type="button" value="再加一列" onClick="addRow()" ></td></tr>
    </table>
    </form>
    </body>
    </html>当点击再加列时 增加一列 然后点击确定 确定在这个页面
    <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="com.java.db.Page"%>
    <%@ page import="com.java.db.db"%>
    <%@ page session="true" %>
    <html>
    <head>
    <title>时尚酒店管理信息系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <meta http-equiv="pragma" content="no-cache">
    <style type="text/css">
    *{
    margin:0px;
    padding:0px;}
    TD{
    font-size:12px;
    font-weight:bolder;}
    INPUT{
    background-color:#CCC;}
    .a{
    padding-left:300px;}
    </style>
    <script type="text/javascript">
    function checkNumber()
    {
    var clnumber=document.form1.clnumber.value;
     ifrm.location.href="checkDate.jsp?clnumber="+clnumber;
     
    }
    function addBj()
    {document.form1.action="bjrk_add.jsp";
    document.form1.submit();
    window.frames["ifrm1"].addBj();}
    </script>
    </head>
    <body bgcolor="#CCCCCC">
    <iframe name="ifrm" style="display:none"></iframe>
    <iframe name="ifrm2" style="display:none"></iframe>
    <form  name="form1">
    <table width="100%">
    <tr><td bgcolor="#000066"><font color="#FFFFFF" style="font-weight:bolder; font-size:12px">备件入库</font></td></tr>
    </table>
    <table width="1150" cellpadding="0" cellspacing="0">
    <tr>
    <td style="font-size:24px; font-weight:bolder">备件入库</td>
    <td>
    入库单号:<input type="text" name="rkdannumber"/>
    </td>
    </tr>
    </table>
    <table width="1150">
    <tr>
    <%
    Page pagezj=db.selectAllRowsPage("select bh,name from codeinfo where typename='gysname'");
    %>
    <td class="a">
    供应商名字:<select name="gysname" style="background-color:#CCC; width:200px">
              <%if(pagezj.getRowCount()>0)
         {
      for(int i=0;i<pagezj.getRowCount();i++)
     {
       %>
              <option value='<%=pagezj.getValue(i,0)%>' >--<%=pagezj.getValue(i,1)%>--</option>
              <%
      }
              }
        %>
    </select>
    材料编码:<input type="text" name="clnumber" onBlur="checkNumber()"></td>
    </tr>
    </table>
    <hr>
    <iframe name="ifrm1" width="1150" id="ifrm"></iframe>
    <table  cellpadding="0" cellspacing="0">
    <tr>
    <td>付款金额:<input type="text" name="fkje"></td>
    <td>付款方式:<input type="text" name="fkfs"></td>
    <td><input type="button" value="确定"  onClick="addBj()"></td>
    </TR></table>
    </form>
    </body>
    </html>将数据传递给下面这个页面 <%@ page contentType="text/html; charset=GBK" %>
    <%@ page import="com.java.db.Page"%>
    <%@ page import="com.java.db.db"%>
    <%@ page session="true" %>
    <html>
    <head>
    <title>时尚酒店管理信息系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=GBK">
    <meta http-equiv="pragma" content="no-cache">
    </head>
    <%
    String[] clnumber=request.getParameterValues("clnumber");
    String[] ljnumber=request.getParameterValues("ljnumber");
    String[] clname=request.getParameterValues("clname");
    String[] dw=request.getParameterValues("dw");
    String[] jj=request.getParameterValues("jj");
    String[] rknumber=request.getParameterValues("rknumber");
    String[] rkje=request.getParameterValues("rkje");
    String[] ck=request.getParameterValues("ck");
    String[] rktime=request.getParameterValues("rktime");
    String[] xsje=request.getParameterValues("xsje");
    String[] cartype=request.getParameterValues("cartype");
    String gysname=request.getParameter("gysname");
    String fkje=request.getParameter("fkje");
    String fkfs=request.getParameter("fkfs");
    String rkdannumber=request.getParameter("rkdannumber");int size = ljnumber.length;
    for(int i=0;i<size;i++)
    {
      boolean insFlag = false;
      db db1 = new db();
      insFlag = db1.insertRow("insert into bjrk(rkdannumber,clnumber,ljnumber,clname,dw,jj,rknumber,rkje,xsje,ck,fkje,fkfs,rktime,cartype,gysname)values('"+rkdannumber+"','"+clnumber[i]+"','"+ljnumber[i]+"','"+clname[i]+"','"+dw[i]+"','"+jj[i]+"','"+rknumber[i]+"','"+rkje[i]+"','"+xsje[i]+"','"+ck[i]+"','"+fkje+"','"+fkfs+"','"+rktime[i]+"','"+cartype[i]+"','"+gysname+"')"); 
    if(insFlag)
    {
    %>
    <script language="javascript">
     alert("车辆登记操作成功!");
    window.location.href="cldj_main.jsp";
    </script>
    <%
    }
    else
    {
    %>
    <script language="javascript">
     alert("车辆登记操作失败!");
      window.location.href="cldj_main.jsp ";
    </script>
    <%
    }
    }
    %><body></body>
    </html>最后出现的错误的语句是 ]int size = ljnumber.length 错误时:java.lang.NullPointerException 但是我已经赋值了 这是怎么回事?、
      

  2.   

    你第一个jsp没有form,getgetParameter()方法是获取提交表单元素或者url的参数,你现在应该是表单都没有的。
    你在第二个页面获取元素的时候,都是获取的NULL,你用length()方法自然出现NullPointerException。
    这不是数据保存的问题,是在你数据传递的时候出现了错误
      

  3.   

    第一个有form <form name="form1">
    <table width="1150" cellpadding="0" cellspacing="0" id="tb">
    <tr>
    <td>材料编码</td><td>零件号</td><td>材料名称</td><td>单位</td><td>进价</td><td>入库数量</td><td>入库金额</td><td>销售金额</td><td>仓库</td><td>入库日期</td><td>车型</td>
    </tr>
    <TR>
    <td><input type="text" name="clnumber"></td>
    <td><input type="text" name="ljnumber"></td>
    <td><input type="text" name="clname"></td>
    ......
      

  4.   

    既然报的是空指针,那就肯定是有对象为null就直接用了
    lz贴的太多了……
      

  5.   

    那你先在int size = ljnumber.length;之前打印看看ljnumber的值是什么,到底有没有值啊?
      

  6.   

    你的框架网页,2个表单,两次提交到bjrk_add.jsp
      

  7.   


    function addBj()
    {//document.form1.action="bjrk_add.jsp";
    //document.form1.submit();
    window.frames["ifrm1"].addBj();}把父框架的submit()事件注释掉
      

  8.   

    嗯 这个是我往上贴的时候弄错了 刚才测了一下 感觉是 
    insFlag = db1.insertRow("insert into bjrk(rkdannumber,clnumber,ljnumber,clname,dw,jj,rknumber,rkje,xsje,ck,fkje,fkfs,rktime,cartype,gysname)values('"+rkdannumber+"','"+clnumber[i]+"','"+ljnumber[i]+"','"+clname[i]+"','"+dw[i]+"','"+jj[i]+"','"+rknumber[i]+"','"+rkje[i]+"','"+xsje[i]+"','"+ck[i]+"','"+fkje+"','"+fkfs+"','"+rktime[i]+"','"+cartype[i]+"','"+gysname+"')"); 
    数组那块写的不对 但是 不知道怎么写了?
      

  9.   

    你说异常是在int size = ljnumber.length; 这行代码抛出的,
    为什么程序还会继续执行下去呢?这玩笑开大了吧
      

  10.   

    你如果总觉得你的Sql语句有问题,那你就out.print(),把输出的Sql语句直接放数据库执行下就知道你的sql有没有错了