国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

javascript - spring4.3.7 獲取ajax傳遞的list等復雜類型的參數呢

瀏覽:79日期:2022-12-31 13:00:19

問題描述

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’ isneither 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

<bean class='org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter'><property name='messageConverters'> <list ><bean /> </list></property> </bean>

一個是AnnotationMethodHandlerAdapter屬于被廢棄的了,再一個就是依舊報錯,被告知

org.springframework.web.util.NestedServletException: Requestprocessing failed; nested exception isorg.springframework.beans.InvalidPropertyException: Invalid property’uAnswers0’ of bean class [cn.xxx.entity.UAnswerList]:Property referenced in indexed property path ’uAnswers0’ isneither 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<UAnswer> 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<UAnswer> getuAnswers() {return uAnswers; } public void setuAnswers(List<UAnswer> 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這塊數據拼接格式的問題,但暫時不知該如何解決了。。

問題解答

回答1:

用@RequestBody UAnswerList uAnswers

回答2:

@ResponseBody @RequestMapping('addAnswer.do') public String addAnswer(HttpServletRequest request, HttpServletResponse response, @RequestBody 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(); }回答3:

2個地方需要修改:

使用@RequestBody注解,表示使用http body的內容,如下:

@ResponseBody@RequestMapping('addAnswer.do')public String addAnswer(HttpServletRequest request, HttpServletResponse response, @RequestBody UAnswerList uAnswers){ 省略 }

js端要使用json傳送數據,所以需要指定application/json類型并使用JSON.stringify來將對象轉成json格式,如下:

function yaya(){ $.ajax({ url: 'http://192.168.0.251:8080/jsapi/addAnswer.do', contentType:'application/json', //新增 data: JSON.stringify({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); }, }); }

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 亚洲精品aaa| 中文字幕av一区二区三区 | 亚洲国产激情一区二区三区 | 亚洲在线网站 | 中文字幕视频网站 | 欧美三级超在线视频 | 日本美女视频韩国视频网站免费 | 国产精品三级在线观看 | 欧美亚洲综合另类在线观看 | 国产一区二区三区四区在线观看 | 欧美成人黄色网 | 亚洲精品中文一区不卡 | 久久中文字幕亚洲精品最新 | 神马最新午夜限制片 | 99久久亚洲综合精品网站 | 普通话对白国产情侣自啪 | 国产短裙黑色丝袜在线观看下 | 中国美女一级片 | 亚洲精品中文字幕在线 | 亚洲天堂毛片 | 欧美高清视频一区 | 欧美一区二区三区不卡免费 | 亚洲精品日韩中文字幕久久久 | 四虎午夜剧场 | 亚洲欧美日韩在线一区二区三区 | 成人做爰视频www网站 | 成人毛片在线 | 国产精品天天爽夜夜欢张柏芝 | 国产精品反差婊在线观看 | 岛国在线永久免费视频 | 婷婷色综合久久五月亚洲 | 在线はじめてのおるすばん | 毛片免费在线 | 99热在线获取最新地址 | 亚洲一区免费看 | 欧美成人免费一区在线播放 | 女人夜色黄网在线观看 | 欧美一级大片免费观看 | 欧美黑人巨大xxxxxxxx | 久久亚洲综合中文字幕 | 宅女深夜福利视频在线 |