2015-12-05 3 views
0

Gretings Это проект для моего университета. Идея состоит в том, чтобы предложить функциональность, где мы можем удалить сотрудника с помощью .JSP.Передача параметра из. JSP в другой .JSP

Я попытался осуществить это, используя два .jsp, а также немного на стороне клиента Javascript

Первая JSP является реальным отображением данных на этой JSP У меня динамическая сгенерированная таблица в результате из запрос. Вот создание таблицы, а также выбор. :

 <% 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=HR;user=sa;password=sa;"); 
     Statement stmt = conn.createStatement(); 
     String sqlStr = "SELECT EmpID, EmpFirstName, EmpLastName, EmpJobTitle, EmpSalary FROM Employees order by EmpID"; 
     ResultSet rset = stmt.executeQuery(sqlStr); 
     %> 
     <table id ="tabEmployees" border=1> 
      <tr> 
       <th>ID</th> 
       <th>First Name</th> 
       <th>Last Name</th> 
       <th>Job Title</th> 
       <th>Salary</th> 
      </tr> 
      <% while (rset.next()) { %> 
      <tr> 
       <td><%=rset.getInt("EmpID")%></td> 
       <td><%=rset.getString("EmpFirstName")%></td> 
       <td><%=rset.getString("EmpLastName")%></td> 
       <td><%=rset.getString("EmpJobTitle")%></td> 
       <td><%=rset.getDouble("EmpSalary")%></td> 
       <td><input type="submit" value="Delete" onclick="deleteRow(this)"> </td> 
      </tr>     
     <% } %> 
     </table> 

Как вы можете наблюдать, у меня есть кнопка удаления в каждой строке, цель которой - удалить эту строку (очевидно). Эта кнопка удаления имеет функцию javascript (deleteRow). Код javascript находится в файле .javascript. Вот оно:

function deleteRow(r) 
    { 
     var confirmation = confirm("Delete the row ?"); 
     if (confirmation == true) 
     {  
      var i = r.parentNode.parentNode.rowIndex; 
      var tabEmployee = document.getElementById("tabEmployees"); 
      var cellID = tabEmployee.rows[i].cells[0]; 
      var empID = cellID.firstChild.data; 
      window.alert("1)The Emp id is = "+ empID); 
      var hidElement = document.getElementById("hidInput"); 
      hidElement.value = empID; 

      var xhttp = new XMLHttpRequest(); 
      xhttp.onreadystatechange = function() 
      { 
       if (xhttp.readyState == 4 && xhttp.status == 200) 
       { 
        document.getElementById("showDeleteResult").innerHTML = xhttp.responseText; 
       } 
      }; 
      window.alert("2)The Emp id is = "+ empID); 
      xhttp.open("get", "deleteEmployees.jsp", true); 
      xhttp.send(); 
      document.getElementById("tabEmployees").deleteRow(i); 

     } 
    } 

И, наконец, у меня есть фактическое удаление данных на другой JSP по имени deleteEmployees.jsp, который имеет следующий код:

<body> 
     <%@ page import = "java.sql.*" %> 

     <%Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 

     String empID = request.getParameter("empID"); 
     SQLException ex1=null; 
     response.setContentType("text/html"); 
     out.println("Employee ID " + empID); 
     try 
      { 
      Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=HR;user=sa;password=sa;"); 
      Statement stmt = conn.createStatement(); 
      String delEmployee = "delete from dbo.Employees " 
           + "where empID = " + empID; 
      stmt.executeUpdate (delEmployee); 
      stmt.close(); 
      conn.close(); 
      } 
     catch(SQLException ex) 
      { 
       ex1=ex; 
      } 
     if (ex1==null) 
      { 
       out.println("Employee Deleted"); 
      } 
      else 
      { 
       out.println("Problem during the deletion of the employee "); 
      } 

     %> 
    </body> 

Хотя EmpID в то время как на первой странице есть допустимое значение, когда оно достигает deleteEmployees.jsp, равно null. Как этот empID может сохранить свою ценность?

Любой конструктивный ответ приветствуется

Спасибо

ответ

0

Вам нужно пройти EmpId в другой JSP в качестве параметра запроса:

xhttp.open("get", "deleteEmployees.jsp?empID=" + empID, true); 
+0

Спасибо за ваш ответ – papakis

+0

Если найти ответ на свой вопрос, можете ли вы отметить его как выбранный ответ – jtsnr

Смежные вопросы