jsp高手看进来 给分啦 ! 判断是否为数字 返回添加成功!
我做了添加数据的页面! 代码如下
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<jsp:useBean id="con" scope="page" class="bean.Connect"/>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>添加部门</title>
<Script language="javascript">
function check()
{
if(document.form1.id.value=="")
{
alert("请填写部门编号!");
document.form1.id.focus();
return;
}
if(document.form1.name.value=="")
{
alert("请填写部门名称!");
document.form1.name.focus();
return;
}
if(document.form1.depm.value=="")
{
alert("请填写部门负责人!");
document.form1.depm.focus();
return;
}
/*var val=document.form1.ph.value;
var len=val.length;
if(len>0)
{
for(j=0;j<len;j++)
{
var str=val.substring(j,j+1);
if(str<"0"||str>"9")
{
alert("请输入数字");
break;
}
}
}*/
document.form1.submit();
}
</script>
<%!
String sql="";
String id="";
String name="";
String depch="";
String ph1="";
int ph=0;
%>
</head>
<body bgcolor="#D2E4FC" >
<br><br><br>
<form action="depadd.jsp" name="form1">
<div align="center"><table>
<tr><td align="left">部门编号:</td><td><input type="text" name="id" /></td></tr>
<tr><td align="left">部门名称:</td><td><input type="text" name="name" /></td></tr>
<tr><td align="left">负 责 人:</td><td><input type="text" name="depm" /></td></tr>
<tr><td align="left">联系电话:</td><td><input type="text" name="ph" /></td></tr>
</table>
<p> </p>
<p>
<input type="button" name="add" value=" 添加部门 " onclick="check()"> <input type="button" name="add" value=" 返回浏览查询 " onclick="window.location.href='department.jsp'">
</p>
</div>
</form>
<%
id=request.getParameter("id");
name=request.getParameter("name");
depch=request.getParameter("depm");
ph1=request.getParameter("ph");
ph=Integer.parseInt(ph1);
sql="insert into dept values("+id+","+name+","+depch+","+ph+")";
con.executeInsert(sql);
%>
</body>
</html>
报以下的错误
org.apache.jasper.JasperException: An exception occurred processing JSP page /admin/depadd.jsp at line 79
76: name=request.getParameter("name");
77: depch=request.getParameter("depm");
78: ph1=request.getParameter("ph");
79: ph=Integer.parseInt(ph1);
80:
81: sql="insert into dept values("+id+","+name+","+depch+","+ph+")";
82: con.executeInsert(sql);
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
root cause
java.lang.NumberFormatException: null
我知道是转换类型出错了不知道怎么改
问题2:
还有我的js里面注释掉的那个判断是否为数字的js有错 也不知道怎么改
问题3:
我想等添加数据完后用js弹出添加成功的窗口又 怎么改
急 哪位大哥指教一二啊 谢谢
[解决办法]
[解决办法]
问题一:
类型转换:request.getParameter("") 返回的默认是Object类型的数据,要转换成string 的类型是必须强转
id=request.getParameter("id").toString();
name=request.getParameter("name").toString();
depch=request.getParameter("depm").toString();
ph1=request.getParameter("ph").toString();
ph=Integer.parseInt(ph1);
问题二:JS验证是否为数字
if(isNaN(document.form1.ph.value)){
alert('请输入数字!')
document.form1.ph.focus();
return false;
}
问题三:
你添加成功之后可以跳转到另一个页面,在这个页面的OnLoad的时候alert一个提示窗口 ,若还需要跳转只需要在页面里面再给转发就行了
[解决办法]
js正则表达式验证:/^\d+$/.test("你要检查的字符产")
java验证:
Pattern pattern = Pattern.compile("^\\d+$");
Matcher matcher = pattern.matcher("你要检查的字符产");
matcher.find();
希望能有帮助
[解决办法]
唉,楼上都已经告诉你了……你直接用string,插一个空值也没问题,可是转换了就不行,就可能报错,你还不明白?你可以加一个判断,你的程序应该就OK了!呵呵!在ph=……前,加:if(ph1 != null && !ph.equals(""))应该就可以了!呵呵!
[解决办法]
up
我的异常网推荐解决方案:An exception occurred processing JSP page,http://www.myexception.cn/j2se/33144.html