2 回答
TA贡献1833条经验 获得超4个赞
不知道你解决了没有。我刚好遇到这个问题,基本上和你差不多。
你这个实际上是复杂数据传递。
因为你的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" />
好了,这样就应该可以了
TA贡献1828条经验 获得超13个赞
dataType : "text",
你 的ajax 参数 是 json 格式 这里 用 text 文本类型 发送 肯定是不对的吧
你 该 成 json 试试
添加回答
举报