jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 通过AJAX将数组传递给Spring MVC大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发 spring mvc应用程序,在那里我应该基于 Spring MVC验证器验证但是验证但是AJAX请求.因此,当我发送单个数据时,一切正常,Spring将数据从请求映射到对象并验证它.但是当我添加新的参数,即数组时,Spring会产生异常:

java.lang.numberFormatException: For input String: ""

我的用户类:

public class User
{
    @NotEmpty
    private String login;

    private List<Department> departments;
}

我的控制器:

@Controller
public class UserController
{
    @requestMapping(value = "/save")
    public ModelAndView save(@Valid @modelattribute("user") final User user,BindingResult result) throws Exception
    {
       // do action
    }
}

我的AJAX请求(POST):

http://localhost:8080/myApp/user/save?departments%5B%5D=1&departments%5B%5D=3&id=&login=Test

我的JS(jQuery):

var form = $('.add-form');
var fields = form.find('input');
var data = {};
// get valud from input fields
for (var i = 0; i < fields.length; i++) {
    var $item = $(fields[i]);
    data[$item.attr('name')] = $item.val();
}
// get value from list as array
data['departments'] = form.find('#departmentsSELEctor').val();
$.ajax({
    type: "POST",url: "user/save",data: data,success: function(responsE){
        // do something
    }
})

看起来Spring试图将参数departments []的名称解析为带有值而不是使用此参数的值的参数.

谁能帮我这个?

解决方法

所以,我发现了一个错误,问题出现在参数部门的[]中.如果你使用传统的:对于jQuery AJAX请求是真的,那么数组变量将不包含名称中的[]和Spring在POJO中的映射.

大佬总结

以上是大佬教程为你收集整理的jquery – 通过AJAX将数组传递给Spring MVC全部内容,希望文章能够帮你解决jquery – 通过AJAX将数组传递给Spring MVC所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。