请求不要在doPost servlet中有参数

时间:2017-06-27 17:15:05

标签: javascript java servlets

我在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}对象在我重新点票时没有任何参数。

2 个答案:

答案 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。