Jquery 如何在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.

我正在使用ajax在SpringMVC中提交一个表单。表单正在动态生成。因此,我不知道表单中提交的请求参数的名称

在一个简单的表单提交(不是Ajax)中,我使用以下代码获取所有参数名及其值

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()
将所有内容作为单独的参数发送