检索 JSP 页面 Servlet 上的按钮名称



我正在使用 eclipse 开发一个 jsp 应用程序。当前尝试检测在使用 ajax 调用提交表单时按下了哪个按钮。但是 request.getParameter(button-name) 在 servlet 的 doPost 方法中返回 null。下面是JSP,Ajax Call(jQuery)和Servlet的代码。.jsp

<body>
    <form id="formCreateUser">
        <div>
            <table>
                <tr>
                    <th colspan="4"><label>New User Information</label></th>
                </tr>
                <tr>
                    <td><label>Name : </label> <input type="text" name="txtName"
                        id="txtName" /></td>
                    <td><label>Surname : </label><input type="text"
                        id="txtSurname" name="txtSurname" /></td>
                </tr>
                <tr>
                    <td><label>User name : </label><input type="text"
                        name="txtUserName" /></td>
                    <td><label>E-mail : </label> <input type="text"
                        name="txtEmail" /></td>
                </tr>
                <tr>
                    <td><label>Password : </label><input type="password"
                        id="txtPassword" /></td>
                    <td><label>Re-enter password : </label><input type="password"
                        id="txtPassword2" /></td>
                </tr>
                <tr>
                    <td><label>Is Admin ?</label> <input type="checkbox"
                        value="Admin" name="chkAdmin" id="chkAdmin" /></td>
                </tr>
            </table>
            <input type="button" value="Submit" name="btnSumbit" id="btnSubmit" />
        </div>
    </form>
</body>
/

/jquery

$(document).ready(function() {  
    $("#btnSubmit").click(function(e) {
        $.ajax({
            url : 'CreateUserServlet',
            type : 'POST',
            dataType : 'json',
            data : $("#formCreateUser").serialize(),
            success : function(data) {
                //something here
            }
        });
        return false;
    });     
}); 

奴役

protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        Map<String, Object> map = new HashMap<String, Object>();
        if (request.getParameter("btnSubmit") != null) {
            System.out.println("It works");
        } else {
            System.out.println("It doesn't work");
        }
}

任何帮助都非常感谢问候

在 jquery 部分,你必须发送参数和它的值,如果你显示 serialize() 方法,它不会给你 btnsubmit 的参数,所以你必须像这样将它添加到方法中:替换此代码:

data : $("#formCreateUser").serialize(),

通过这个:

data : $("#formCreateUser").serialize()+"&btnSumbit="+$("#btnSubmit").val(),

我希望它能为你工作。

最新更新