JAVABEAN中无法获取组件的值输入到数据库中。
这是JSP代码:
- HTML code
<%@ page language="java" import="java.sql.*" contentType="text/html; charset=GBK"%><jsp:useBean id="queryBean" scope="page" class="ch4.QueryBean"/><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <base href="<%=basePath%>"> <title>My JSP 'MySql.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <table width="60%" border="1"> <tr><td width="50%">姓名</td> <td width="25%">学号</td> <td width="25%">学分</td> </tr> <%ResultSet rs=queryBean.getQuery("select * from ta"); while(rs.next()){%> <tr><td width="50%"><%=rs.getString(1)%></td> <td width="25%"><%=rs.getInt(2) %></td> <td width="25%"><%=rs.getInt(3) %></td></tr> <% } rs.close();%> </table> <form action="" method="post"> 姓名 <input type="text" name="name" id="name"><BR> 学号 <input type="text" name="num" id="num" ><br> 学分 <input type="text" name="point" id="point" ><input type="reset" value="清除" > <input type="submit" value="add" name="add"> <input type="submit" value="modify" name="modify"> <jsp:setProperty property="submit" name="queryBean" value="<%=request.getParameter(\"submit\") %>"/> <jsp:setProperty property="str1" name="queryBean" value="<%= request.getParameter(\"name\")%>"/> <jsp:setProperty property="str2" name="queryBean" value="<%= request.getParameter(\"num\")%>"/> <jsp:setProperty property="str3" name="queryBean" value="<%=request.getParameter(\"point\")%>"/> <% try{ String str1=request.getParameter("name"); int str2=Integer.parseInt(request.getParameter("num")); int str3=Integer.parseInt(request.getParameter("point")); //queryBean.setModify("insert into ta values ('"+str1+"',"+str2+","+str3+");");使用这个方法可以存入值 queryBean.add(); out.println(str1); } catch (NumberFormatException e){ out.println("请输入数字");} %> </form> </body> </html>这是有关数据库的JAVA代码:
- Java code
package ch4;import java.sql.*;public class QueryBean {ResultSet rs;Connection conn;String dbUser="root",dbUrl="jdbc:mysql://localhost/kat",dbPassword="020075";String submit=null,str1=null,str2=null,str3=null;public QueryBean(){ try{ Class.forName("org.gjt.mm.mysql.Driver"); }catch (java.lang.ClassNotFoundException e){ System.out.println(e.getMessage()); }} public ResultSet getQuery(String sql){ try{ conn=DriverManager.getConnection(dbUrl,dbUser,dbPassword); Statement stm=conn.createStatement(); rs=stm.executeQuery(sql); } catch (SQLException e){ e.printStackTrace(); } return rs; }public void setModify(String sql){ try{ conn=DriverManager.getConnection(dbUrl,dbUser,dbPassword); Statement stm=conn.createStatement(); stm.executeUpdate(sql); } catch (SQLException e){ e.printStackTrace(); }}public void setSubmit(String s){ submit=s;}public void setStr1(String s){ str1=s;}public void setStr2(String s){ str2=s;}public void setStr3(String s){ str3=s;}public void add(){ if(submit.equals("add")) setModify("insert into ta values('"+str1+"',"+str2+","+str3+");"); else if(submit.equals("modify")) setModify("update ta set 姓名='str1' where 学号='str2';");}}
提示的错误是:
org.apache.jasper.JasperException: An exception occurred processing JSP page /MySql2.jsp at line 60
57: int str2=Integer.parseInt(request.getParameter("num"));
58: int str3=Integer.parseInt(request.getParameter("point"));
59: //queryBean.setModify("insert into ta values('"+str1+"',"+str2+","+str3+");");
60: queryBean.add();
61: out.println(str1);
62:
63: }
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:567)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:471)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.NullPointerException
ch4.QueryBean.add(QueryBean.java:49)
org.apache.jsp.MySql2_jsp._jspService(MySql2_jsp.java:160)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
[解决办法]
ava.lang.NullPointerException
ch4.QueryBean.add(QueryBean.java:49)
看下你的QueryBean 的49行是哪个?
你的submit 这个值是什么时候setSubmit?
这个submit可能为null
我的异常网推荐解决方案:An exception occurred processing JSP page,http://www.myexception.cn/j2se/33144.html