我在servlet中遇到问题,我使用表单提交执行POST请求,但是在servlet端,显示没有任何参数可供使用。我不知道可能导致此问题的原因或如何解决问题
这是我提交的表格:
<table>
<form name="eliAlumno" id="eliAlumno" method="POST" action="DelAlumno">
<tr>
<td><input type="radio" name="radioGroup" class="radioButtonEli" value="0"></input></td>
<td>any name</td>
<td>any last name</td>
<td>any string</td>
<td>any number</td>
<td>true or false</td>
<td><input type="submit" id="0" value="Eliminar"></input></td>
</tr>
</form>
</table>
这是我的javascript
$("#eliAlumno").submit(function (event) {
event.preventDefault();
document.getElementsByClassName("loader")[1].style.display = "block";
setTimeout(del, 3000);
function del() {
document.getElementsByClassName("loader")[1].style.display = "none";
$.ajax({
url: "DelAlumno",
type: "POST",
data: $("#eliAlumno").serialize()
})
.done(function (json) {
bootbox.alert({
size: "small",
title: "Exito",
message: "El alumno ha sido eliminado adecuadamente."
});
})
.fail(function (xhr, status, errorThrown) {
bootbox.alert({
size: "large",
title: "Error",
message: "El alumno no se eliminó adecuadamente\n\
información del error: <br>" + errorThrown
});
});
}
});
这是我的servlet doPost方法
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Gson g = new Gson();
ProcessDataDel pdd = new ProcessDataDel();
int id = Integer.parseInt(request.getParameter("radioGroup"));
pdd.deleteAlu(id, g);
response.sendRedirect("consulta.jsp");
}
但{I}对象在我重新点票时没有任何参数。
答案 0 :(得分:1)
我已经回答了我自己的问题。
对于一些reazon来说,发送数据时,AJAX方法的顺序非常重要。
而不是:
$.ajax({
url: "DelAlumno",
type: "POST",
data: $("#eliAlumno").serialize()
})
必须是:
$.ajax({
url: "DelAlumno",
data: $("#eliAlumno").serialize(),
type: "POST"
})
我怀疑如果type在该数据之前,则servlet在读取参数
之前输入方法答案 1 :(得分:0)
我认为你正在混合什么是控制器和servlet。 你要做的是调用Action而不是servlet doPost。