请问各位大虾为什么我修改资料时会出现这样的错误,以下的是提交修改后处理的代码。
我检查到 long id=Long.parseLong(request.getParameter("id"));出问题,但又不知道怎么改,而且这个代码我看别人也在用也可以呀。另我自己把上句注释掉,把改成id=1,文件正常工作,只是只能更改ID为1的那个记录。
请问如何解决.
如下是错误。
exception org.apache.jasper.JasperException: null
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:372)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause java.lang.NumberFormatException: null
java.lang.Long.parseLong(Long.java:292)
java.lang.Long.parseLong(Long.java:381)
org.apache.jsp.AccessDb.acceptmodi2_jsp._jspService(acceptmodi2_jsp.java:64)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
如下是代码:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<%!
public String codeToString(String str)
{//??????????
  String s=str;
  try
    {
    byte tempB[]=s.getBytes("ISO-8859-1");
    s=new String(tempB);
    return s;
   }
  catch(Exception e)
   {
    return s;
   }  
}
%>
<%//接收要修改的用户ID号
 long id=Long.parseLong(request.getParameter("id"));
%>
<%//??????????
 String title=codeToString(request.getParameter("title"));
  if(title==null)//无内容则设为空串
    title=""; String description=codeToString(request.getParameter("description"));
  if(description==null)//无内容则设为空串
    description=""; String fileurl=codeToString(request.getParameter("fileurl"));
  if(fileurl==null)//无内容则设为空串
    fileurl=""; String picurl=codeToString(request.getParameter("picurl"));
  if(picurl==null)//无内容则设为空串
    picurl=""; String kind=codeToString(request.getParameter("kind")); 
 if(kind==null)//无内容则设为空串
    kind="";%>
<%//??????SQL??
 String sqlString=null;//SQL??
  sqlString="update search_en set title='"+title+"',description='"+description+"',fileurl='"+fileurl+"',picurl='"+picurl+"',kind='"+kind+"' where id="+id;
%><%//??SQL??
 try 
    { Connection con;
      Statement sql;
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
  String strDirPath=getServletContext().getRealPath("/"); 
      strDirPath=strDirPath.replace('\\','/'); 
      String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+strDirPath+"AccessDb/searchDB.mdb";
  con=DriverManager.getConnection(url);
  out.println(sqlString + " <br/>");
      sql=con.createStatement();
      sql.executeUpdate(sqlString);
      con.close();
    }
 catch(SQLException e1) 
    {
      out.print(e1);
    }
%>
 Modify Succed! Please [ <a href="javascript:history.back();">return</a> ] [<a href="queryky2.jsp">list</a>] 

解决方案 »

  1.   

    <%@ page contentType="text/html;charset=GB2312" %>
    <%@ page import="java.sql.*" %>
    <script language="javascript">
     function on_submit()
     {//验证数据的合法性
      if (form1.title.value == "")
     {
      alert("用户名不能为空,请输入用户名!");
      return false;
     }
        if (form1.description.value == "")
     {
      alert("用户密码不能为空,请输入密码!");
      return false;
     }
        if (form1.picurl.value == "")
     {
      alert("用户确认密码不能为空,请输入密码!");
      return false;
     }
     }
    </script>
    <%//接收要修改的用户ID号
     long id;
     try
     {
       id=Long.parseLong(request.getParameter("id"));
     }
     catch(Exception e)
     {
       id=0; 
     }
    %>
    <%if(id!=0)
      {
      String sqlString="select * from search_en where id="+id;
      try 
        { Connection con;
          Statement sql;
          ResultSet rs;
          Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String strDirPath=getServletContext().getRealPath("/"); 
          strDirPath=strDirPath.replace('\\','/'); 
          String url = "jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ="+strDirPath+"AccessDb/searchDB.mdb";
          con=DriverManager.getConnection(url);
          sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
          rs=sql.executeQuery(sqlString);
          rs.next();
     String kind=rs.getString("kind");
      %>
    <head>
    <title>修改产品后台</title>
    </head>
    <body>
    <center>
    <table border="1" width="700">
      <tr>
        <td colspan="2" align="center"><input type="hidden" value="<%=id%>" name="id"></td>
      </tr>
      <form action="acceptmodi2.jsp" method="post" onsubmit="return on_submit()" name="form1">
      <tr>
        <td width="24%">title:</td>
        <td width="76%"><input name="title" type="text" id="title" size="50" value="<%=rs.getString("title")%>">      (*)</td>
      </tr>
      <tr>
        <td >description:</td>
        <td >      <textarea name="description" cols="50" rows="10" id="description"><%=rs.getString("description")%></textarea>
          (*)</td>
      </tr>
      <tr>
        <td >fileurl:</td>
        <td ><input name="fileurl" type="text" id="fileurl" size="50" value="<%=rs.getString("fileurl")%>">
          (*)</td>
      </tr>
      <tr>
        <td>picurl:</td>
        <td ><input name="picurl" type="text" id="picurl" size="50" value="<%=rs.getString("picurl")%>"></td>
      </tr>
      <tr>
        <td>kind:</td>
        <td >
    <select name="kind" size="3" id="kind" >
          <option value="p" <%if(kind.equals("p")) {out.print("selected");}%>>product</option>
          <option value="s" <%if(kind.equals("s")) {out.print("selected");}%>>software</option>
          <option value="t" <%if(kind.equals("t")){out.print("selected");}%>>techinfo</option>
        </select>
    </td>
      </tr>
      <tr>
        <td colspan="2" align="center"> <input type="submit" value="submit"><input type="reset" value="cancel"></td>
        </tr>
      </form>
    </table>
    <%
           con.close();
        }
       catch(SQLException e1) 
        {
          out.print("SQL异常!");
        }
      }
      else
      {
      out.print("数据不正确!");
      }%></center>
    </body>
    </html>从这个文件传的ID
      

  2.   

    <input type="hidden" value=" <%=id%>" name="id"> 没放到form内,查出来了,我晕
      

  3.   

    <input type="hidden" value=" <%=id%>" name="id"> </td>放表单外面了,,,