ajax如何获取集合里的数据类型,spring4.3.7 获取ajax传递的list等复杂类型的参数呢...

spring4.3.7如何接收ajax传递的list等复杂类型呢?

直接传就被报

org.springframework.beans.InvalidPropertyException: Invalid property

'uAnswers0' of bean class [cn.xxx.entity.UAnswerList]:

Property referenced in indexed property path 'uAnswers0' is

neither an array nor a List nor a Map; returned value was

[cn.xxx.entity.UAnswer@2d3e47ed]

搜了下网上的解决方案,基本都是以前的,3.x的居多:

1.添加 jackson jar包 :

jackson-core

jackson-mapper

jackson-databind

2.配置xml

一个是AnnotationMethodHandlerAdapter属于被废弃的了,再一个就是依旧报错,被告知

org.springframework.web.util.NestedServletException: Request

processing failed; nested exception is

org.springframework.beans.InvalidPropertyException: Invalid property

'uAnswers0' of bean class [cn.xxx.entity.UAnswerList]:

Property referenced in indexed property path 'uAnswers0' is

neither an array nor a List nor a Map; returned value was

[cn.xxx.entity.UAnswer@70671304]

详细代码如下:

1、UAnswer类

public class UAnswer {

private Integer uaid;

private Integer quid;//用户id

private Integer qnid;//问卷id

private Integer qid;//问题id

private Integer oid;//选项id

private String remark;//备注

private String createtime;

public Integer getUaid() {

return uaid;

}

public void setUaid(Integer uaid) {

this.uaid = uaid;

}

public Integer getQuid() {

return quid;

}

public void setQuid(Integer quid) {

this.quid = quid;

}

public Integer getQnid() {

return qnid;

}

public void setQnid(Integer qnid) {

this.qnid = qnid;

}

public Integer getQid() {

return qid;

}

public void setQid(Integer qid) {

this.qid = qid;

}

public Integer getOid() {

return oid;

}

public void setOid(Integer oid) {

this.oid = oid;

}

public String getRemark() {

return remark;

}

public void setRemark(String remark) {

this.remark = remark;

}

public String getCreatetime() {

return createtime;

}

public void setCreatetime(String createtime) {

this.createtime = createtime;

}

}

2、UAnswerList类

public class UAnswerList {

private Integer quid;//用户id

private Integer qnid;//问卷id

private List uAnswers;

public Integer getQuid() {

return quid;

}

public void setQuid(Integer quid) {

this.quid = quid;

}

public Integer getQnid() {

return qnid;

}

public void setQnid(Integer qnid) {

this.qnid = qnid;

}

public List getuAnswers() {

return uAnswers;

}

public void setuAnswers(List uAnswers) {

this.uAnswers = uAnswers;

}

}

3、controller

@ResponseBody

@RequestMapping("addAnswer.do")

public String addAnswer(HttpServletRequest request, HttpServletResponse response, UAnswerList uAnswers){

ReturnResult r = new ReturnResult();

r.setCode(1);

r.setMsg("findAllNowCity success");

if(uAnswers==null||uAnswers.getQnid()==null||uAnswers.getQuid()==null||uAnswers.getuAnswers()==null){

r.setCode(-1);

r.setMsg("尚未填写问卷");

return r.toJsonString();

}

//相关操作

return r.toJsonString();

}

4、ajax模拟的数据

function yaya(){

$.ajax({

url: "http://192.168.0.251:8080/jsapi/addAnswer.do",

data: {

quid:"odeq5uFtR835lZGTKxLpGy9jHEDU",

qnid:1,

uAnswers:[

{

qid:1,

oid:2

},

{

qid:1,

oid:3

},

{

qid:2,

oid:7

},

{

qid:3,

oid:14

},

{

qid:6,

oid:15,

remark:"hahaha"

},

]

},

type: "post",

cache : false,

dataType:'json',

success: function(data) {

console.log(data);

document.getElementById("resurl").innerHTML= JSON.stringify(data);

},

});

}

也可能是ajax这块数据拼接格式的问题,但暂时不知该如何解决了。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值