问题描述
- 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数据是空- -,所以应该怎么写?
解决方案
List从哪传到哪?如果是从JSP中传到java中,要使用json
解决方案二:
dataType你写了两遍啊,建议把ajax语法先搞清楚,前端页面传数据到后台可以写data:{k,v}这样传参,后台获取getparam。也可以封装成对象去传递参数,希望能帮到你
解决方案三:
//将一个表单的数据返回成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;
}
}
解决方案四:
还是看这里吧http://blog.csdn.net/yangtang_newton/article/details/7525800
代码传上去都乱了