为了账号安全,请及时绑定邮箱和手机立即绑定

求教各位,在struts2中,接受ajax传的json对象集合,接受不到?

/ 猿问

求教各位,在struts2中,接受ajax传的json对象集合,接受不到?

在struts2中,接受ajax传的json对象集合,接受不到


查看完整描述

3 回答

?
萧十郎

不知道你解决了没有。我刚好遇到这个问题,基本上和你差不多。
你这个实际上是复杂数据传递。
因为你的json中又包含了JsonArray,array中又存储了json对象......
因为你是采用jquery的Ajax进行传递的,但是jquery的ajax和struts并不是很兼容,传递过去的值,根本无法被被正确的解析。那么如何解决这个问题呢?
这样改
var myparam = var myparam = JSON.stringify(
{
'userName' : '薛军军',
'sex' : '男',
'others' : '其他值',
'jsonTest':[{'t_id':'sd','t_name':'trs'},{'t_id':'sd','t_name':'trs'}]
},
);
$.ajax({
type:"POST",
async:false,
url :"<%=basePath%>pages/User/getUserObj.action",
data : myparam,
dataType : "text",
success : function(data) {
alert(data);
}

});
这样就向后台传递了正确的json对象。
但是现在后台还无法正确接收对象,还需要配置struts.xml,在你的包中,action前面加上拦截器
<interceptors>
<interceptor-stack name="myStack">
<interceptor-ref name="json"></interceptor-ref>
<interceptor-ref name="defaultStack" />
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack" />
好了,这样就应该可以了



查看完整回答
反对 2019-12-01
?
慕用2447696

你这个json写得好像有问题哦

1var t2="{'students':[{'firstname':'aa','lastname':'bb'}, 'firstname':'cc','lastname':'dd'}]}";

应该是这样吧,你漏写了一个{ 应该像下面这样

1var t2="{'students':[{'firstname':'aa','lastname':'bb'}, {'firstname':'cc','lastname':'dd'}]}";

另外如果struts2不支持json数组,你改用字符串把这些参数拼接起来就行了,到了后台使用split方法把字符串拆开就行了


查看完整回答
反对 2019-12-01
?
绝地无双

开发中经常会遇到这种问题,碰到这种问题先不要着急。
  首先:先检查一下参数名有没有问题,要确保参数名是正确的。
  然后:确认一下ajax确实传递了这个json数组,比如可以alert(json);打印出来传递的json有没有问题,如果这一步也没有问题,就把项目debug然后在对应的java方法中打一个断点。再去看传过来的参数是否有问题。到这里要注意一下,有没有进到这个java方法,如果没有进来,可能是ajax方法写的有问题,如果进来了,就检查一下json。应该就可以了。

查看完整回答
反对 2019-12-01

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信