2 sinat 16065743 sinat_16065743 于 2015.07.27 23:05 提问

SpringMVC下怎么使用List数据绑定?ajax传输应该怎么写?
 public class Certificates {

    private List<Certificate> certsList = new ArrayList<Certificate>();

    public List<Certificate> getCertsList() {  
        return certsList;
    }
    public void setCertsList(List<Certificate> certsList){
        this.certsList = certsList;
    }

}
 $.ajax({
                async : false,
                cache : false,
                type : "post",
                dataType : "json",
                dataType : "text",
                contentType : "application/json;charset=UTF-8",
                data : JSON.stringify($('#infoForm').serializeObject()),
                url : "insertExpert.htm",
                success : function(data) {

                    var d = $.parseJSON(data);
                    if (d.success) {
                        alert("注册信息成功!\n请用注册的用户登陆系统,上传代码证附件!");
                    } else {
                        alert("注册失败!");
                    }
                }
            });

<tr id="table_zgzs_row">
                                    <td><input type="text" name="certsList[0].zgzsmc" id="certs[0].zgzsmc"
                                        style="width:100%;height:20px" />
                                    </td>
                                    <td><input type="text" name="certsList[0].zsbh00" id="certs[0].zsbh00"
                                        style="width:100%;height:20px" />
                                    </td>
                                    <td><input type="text" name="certsList[0].bfsj00" id="certs[0].bfsj00"
                                        style="width:100%;height:20px" />
                                    </td>
                                    <td><input type="text" name="certsList[0].bzjg00" id="certs[0].bzjg00"
                                        style="width:100%;height:20px" />
                                    </td>
                                </tr>

controller中收到的list数据是空- -,所以应该怎么写?

4个回答

Evankaka
Evankaka   Ds   Rxr 2015.07.27 23:37

List从哪传到哪?如果是从JSP中传到java中,要使用json

sinat_16065743
sinat_16065743 是从页面获取数据传到Java的controller中,但是传输的数据格式一直不对
2 年多之前 回复
purensong333
purensong333   2015.07.27 23:40

dataType你写了两遍啊,建议把ajax语法先搞清楚,前端页面传数据到后台可以写data:{k,v}这样传参,后台获取getparam。也可以封装成对象去传递参数,希望能帮到你

sinat_16065743
sinat_16065743 是希望能封装成对象传递,但是按照我的写法传值有问题,但是不知道是哪里有问题
2 年多之前 回复
Evankaka
Evankaka   Ds   Rxr 2015.07.28 08:32

//将一个表单的数据返回成JSON对象

$.fn.serializeObject = function() {

var o = {};

var a = this.serializeArray();

$.each(a, function() {

if (o[this.name]) {

if (!o[this.name].push) {

o[this.name] = [ o[this.name] ];

}

o[this.name].push(this.value || '');

} else {

o[this.name] = this.value || '';

}

});

return o;

};

$(document).ready(

function() {

jQuery.ajax( {

type : 'GET',

contentType : 'application/json',

url : 'user/list',

dataType : 'json',

success : function(data) {

if (data && data.success == "true") {

$('#info').html("共" + data.total + "条数据。
");

$.each(data.data, function(i, item) {

$('#info').append(

"编号:" + item.id + ",姓名:" + item.username

+ ",年龄:" + item.age);

});

}

},

error : function() {

alert("error")

}

});

$("#submit").click(function() {

var jsonuserinfo = $.toJSON($('#form').serializeObject());

alert(jsonuserinfo);

jQuery.ajax( {

type : 'POST',

contentType : 'application/json',

url : 'user/add',

data : jsonuserinfo,

dataType : 'json',

success : function(data) {

alert("新增成功!");

},

error : function(data) {

alert("error")

}

});

});

});

@Controller  
@RequestMapping("/user")  
public class DemoController {  
  private Logger logger = LoggerFactory.getLogger(DemoController.class);  

  @RequestMapping(value = "/list", method = RequestMethod.GET)  
  @ResponseBody  
  public Map<String, Object> getUserList() {  
    logger.info("列表");  
    List<UserModel> list = new ArrayList<UserModel>();  
    UserModel um = new UserModel();  
    um.setId("1");  
    um.setUsername("sss");  
    um.setAge(222);  
    list.add(um);  
    Map<String, Object> modelMap = new HashMap<String, Object>(3);  
    modelMap.put("total", "1");  
    modelMap.put("data", list);  
    modelMap.put("success", "true");  
    return modelMap;  
  }  

  @RequestMapping(value = "/add", method = RequestMethod.POST)  
  @ResponseBody  
  public Map<String, String> addUser(@RequestBody UserModel model) {  
    logger.info("新增");  
    logger.info("捕获到前台传递过来的Model,名称为:" + model.getUsername());  
    Map<String, String> map = new HashMap<String, String>(1);  
    map.put("success", "true");  
    return map;  
  }  
}  
Evankaka
Evankaka   Ds   Rxr 2015.07.28 08:32

还是看这里吧http://blog.csdn.net/yangtang_newton/article/details/7525800
代码传上去都乱了

Csdn user default icon
上传中...
上传图片
插入图片