在jsp页面servlet上检索按钮名称

时间:2014-12-16 11:40:32

标签: java jquery ajax jsp servlets

我正在使用eclipse开发一个jsp应用程序。 目前正在尝试检测在使用ajax调用提交表单时按下了哪个按钮。 但是request.getParameter(button-name)在servlet的doPost方法中返回null。 下面是jsp,ajax调用(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;
    });     
}); 

的servlet

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");
        }
}

任何帮助都非常感谢 此致

1 个答案:

答案 0 :(得分:0)

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

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

通过这个:

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

我希望它对你有用。