关于提交表单后得到ID如何获取整值以便SQL语句。

ltyxing 2009-09-03 06:23:07
请问各位大虾为什么我修改资料时会出现这样的错误,以下的是提交修改后处理的代码。
我检查到 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>]
...全文
163 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaowei3856 2009-09-03
  • 打赏
  • 举报
回复
<input type="hidden" value=" <%=id%>" name="id"> </td>放表单外面了,,,
ltyxing 2009-09-03
  • 打赏
  • 举报
回复
<input type="hidden" value=" <%=id%>" name="id"> 没放到form内,查出来了,我晕
xiaowei3856 2009-09-03
  • 打赏
  • 举报
回复
看你的表单里传id了吗,,好好看看,,,
ltyxing 2009-09-03
  • 打赏
  • 举报
回复
<%@ 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
xiaowei3856 2009-09-03
  • 打赏
  • 举报
回复
从哪儿把id传过来的啊?
jeezz 2009-09-03
  • 打赏
  • 举报
回复
去检查下。 看是哪里写错了。
xiaowei3856 2009-09-03
  • 打赏
  • 举报
回复
id没有接收到
ltyxing 2009-09-03
  • 打赏
  • 举报
回复
请问如何更改,本人是菜鸟,谢谢。
jeezz 2009-09-03
  • 打赏
  • 举报
回复
应该是你的id拿到的是空。 转换出错。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧