Jquery 如何在SpringMVC中获得使用ajax提交的表单中的所有请求参数名称和值?
我正在使用ajax在SpringMVC中提交一个表单。表单正在动态生成。因此,我不知道表单中提交的请求参数的名称 在一个简单的表单提交(不是Ajax)中,我使用以下代码获取所有参数名及其值Jquery 如何在SpringMVC中获得使用ajax提交的表单中的所有请求参数名称和值?,jquery,spring-mvc,http-request-parameters,Jquery,Spring Mvc,Http Request Parameters,我正在使用ajax在SpringMVC中提交一个表单。表单正在动态生成。因此,我不知道表单中提交的请求参数的名称 在一个简单的表单提交(不是Ajax)中,我使用以下代码获取所有参数名及其值 Enumeration requestParameters = request.getParameterNames(); while (requestParameters.hasMoreElements()) { String element = (String) requestParameters.
Enumeration requestParameters = request.getParameterNames();
while (requestParameters.hasMoreElements()) {
String element = (String) requestParameters.nextElement();
String value = request.getParameter(element);
}
但是当我使用ajax提交表单时,同样的代码不起作用。下面是我使用ajax提交表单的代码
$.post("saveEntity", function() {
alert("SUCCESS");
});
下面是我的控制器类方法,它在表单提交时被调用
@RequestMapping(method = RequestMethod.POST, value = "/saveEntity")
public @ResponseBody
void saveEntity( HttpServletRequest request) {
Enumeration requestParameters = request.getParameterNames();
while (requestParameters.hasMoreElements()) {
String element = (String) requestParameters.nextElement();
String value = request.getParameter(element);
if (element != null && value != null) {
logger.info("param Name : " + element
+ " value: " + value);
}
}
}
有没有什么我做错了或遗漏了什么?请帮忙 如果您正在使用jquery,那么您可以使用
alert($('form').serialize());
要获取查询字符串我首先要确保发送到服务器的是什么,或者查看firebug net面板中的请求,或者使用fiddler并确保正确发送数据 XMLHttpRequest监视 编辑 您没有随$.post发送任何数据
$.post({
url: "saveEntity",
data: $('form').serialize(),
success: function(data) {
alert("SUCCESS");
}
});
编辑2
确保$('form')实际选择了要发布的表单。
如果没有,请通过指定表单id提供正确的jquery选择器。
选择正确的表单后,使用警报($('form').serialize())
以确保其返回数据的格式为{elementname1:elementvalue,elementname2:elementvalue2}
。
如果不是,则确保元素具有指定给它们的名称属性 是的,我正在使用jquery,但当我按照您所说的那样做时,我得到的只是一个空白。如果您不知道表单字段,并且希望通过ajax发送所有这些值,那么第二个参数将类似于$.post('saveEntity',$('form')。serialize(),function(){});您可以使用$\u POST[]变量在服务器中获取这些变量。确定,因此不会发送任何参数。但是为什么呢?当我在做这个$.post(“saveEntity”{name:“John”,time:“2pm”},function(){});这很有效。但当我使用$('form').serialize()时就不会了。请重新编辑。就目前而言,我建议您将对象语法与$.post一起使用,而不是使用多个参数。因为我不能确定您是否在multiple param syntax.Hi中丢失了某些内容。我现在可以从JSP发送参数了。但是我如何在SpringMVC控制器中获得这个参数呢。当我请求.getParameterNames()时,我只得到一个param,它是从JSP发送的长JSON字符串,值为空,例如param name为{name:'John',param值为“”。我希望'name'作为参数'John'作为值。请提供帮助。能否显示
$的代码。post()
becoz数据:$('form')。serialize()
将所有内容作为单独的参数发送