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 может сохранить свою ценность?
Любой конструктивный ответ приветствуется
Спасибо
Спасибо за ваш ответ – papakis
Если найти ответ на свой вопрос, можете ли вы отметить его как выбранный ответ – jtsnr