2012-02-23 79 views
0

我一直在执行这个特定的JSP页面时遇到了一些严重的问题。 CODE新行未插入数据库中

<tr> 
<td> 
<%rs2 = st.executeQuery("Select * from degrees"); %> 
<select name = "courses"> 
<%while(rs2.next()) {%> 
<option value = "<%=rs2.getString(1)%>"><%=rs2.getString(2)%></option> 
<%} %> 
</select> 
</td> 
<td> 
<input type = "text" name = "ratings" class = "span1"> 
</td> 
<td> 
<a href = "">Delete Course</a> 
</td> 
</tr> 
<%if(request.getParameter("courses")!="0"&&request.getParameter("ratings")!=null){ 
    String degree_id = request.getParameter("courses"); 
    int ratings = Integer.parseInt(request.getParameter("ratings")); 
    PreparedStatement ps = con.prepareStatement("Insert into college_degree values (?,?,?)"); 
    ps.setString(1,college_id); 
    ps.setString(2,degree_id); 
    ps.setInt(3,ratings); 
    ps.executeUpdate(); 
    c_a = Integer.parseInt(course_added); 
    c_a++; 
    String str = Integer.toString(c_a); 
    course_added = str; 
    String site = new String("degree_to_college.jsp?course_added="+course_added); 
    response.setStatus(response.SC_MOVED_TEMPORARILY); 
    response.setHeader("Location", site); 
} 

%> 
</tbody> 
</table> 
<form action = "degree_to_college.jsp"> 
<input type = "submit" class = "btn-primary large" value = "NEW COURSE" /> 
</form>** 

这里THR麻烦的是点击新的课程,我重定向到同一个页面,而数据库中的任何更改后。没有数据被添加到数据库。

+1

这就是这样一个开放式问题的家伙。首先,请不要在JSP内部编写Java代码,请在此2012年。任何方式,那么你需要检查日志,看看是否有任何错误。放置一个断点并查看代码执行时会发生什么。 – Shahzeb 2012-02-23 03:03:12

回答

3

您忘记在使用后关闭语句和连接。关闭连接将立即提交交易。正常的JDBC语法是在try块的finally块中关闭它们,因为它们在其中创建。

你用这个JSP顺便提一下more serious issues

0

在BalusC说的什么之上。

HTML表单与select/Option语句分开。确保Select元素位于Form内部,以确保它被提交。