我正在使用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");
}
}
任何帮助都非常感谢 此致
答案 0 :(得分:0)
在jquery部分你必须发送参数及其值,如果你显示了serialize()方法,它就不会给你btnSubmit的参数,所以你必须将它添加到这样的方法中: 替换此代码:
data : $("#formCreateUser").serialize(),
通过这个:
data : $("#formCreateUser").serialize()+"&btnSumbit="+$("#btnSubmit").val(),
我希望它对你有用。