如何获取Spring MVC中使用ajax提交的表单中的所有请求参数名称和值?

发布于 12-09 09:01 字数 1138 浏览 0 评论 0原文

我正在使用 ajax 在 spring g MVC 中提交表单。该表单是动态生成的。因此我不知道表单中提交的请求参数的名称。

在简单的表单提交(不是 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);

        }
    }

}

我是否做错了什么或遗漏了什么?请帮忙。

I am submitting a form in spring g MVC using ajax. The form is being generated dynamically. Hence I do not know the names of the request parameters submitted in the form.

In a simple form submission (not Ajax), I used to get all the parameter names and their values using the following code.

Enumeration requestParameters = request.getParameterNames();
while (requestParameters.hasMoreElements()) {
    String element = (String) requestParameters.nextElement();
    String value = request.getParameter(element);
}

But the same code does not work when I submit the form using ajax. Below is the code I am using to submit the form using ajax.

$.post("saveEntity", function() {
     alert("SUCCESS");
});

And below is my controller class method which gets called on the form submission.

@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);

        }
    }

}

Is there anything that I am doing wrong or missing something? Please help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

两相知2024-12-16 09:01:29

我将首先确保发送到服务器的内容,要么查看 firebug 网络面板中的请求,要么使用 fiddler 并确保数据正确发送。

XMLHttpRequest 监控
http://getfirebug.com/network

编辑

您没有随你的$.post。

$.post({
       url: "saveEntity", 
       data: $('form').serialize(),
       success: function(data) {
                    alert("SUCCESS");
                }
       });

编辑 2

确保 $('form') 实际上选择了您要发布的表单。
如果没有,请通过指定表单 id 来提供正确的 jquery 选择器。
选择正确的表单后,使用 alert($('form').serialize()); 确保其以这种格式返回数据 {elementname1: elementvalue, elementname2: elementvalue2}.
如果没有,请确保元素已分配给它们的名称属性。

I will start by making sure whats being sent to the server, either look at request in firebug net panel or by using fiddler and make sure data is being sent properly.

XMLHttpRequest monitoring
http://getfirebug.com/network

Edit

You are not sending any data along with your $.post.

$.post({
       url: "saveEntity", 
       data: $('form').serialize(),
       success: function(data) {
                    alert("SUCCESS");
                }
       });

Edit 2

Make sure $('form') is actually selecting the form which you want to post.
If not, provide correct jquery selector by specifying form id.
Once correct form is selected use alert($('form').serialize()); to make sure its returning data in this format {elementname1: elementvalue, elementname2: elementvalue2}.
If not then make sure elements have name attribute assigned to them.

情泪▽动烟2024-12-16 09:01:29

如果您使用jquery那么您可以使用

alert($('form').serialize());

来获取查询字符串

if you are using jquery then you can use

alert($('form').serialize());

to get the query string

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文