首页 新闻 会员 周边 捐助

ajax 获取不到action传过来的json数据

0
[已解决问题] 解决于 2016-10-20 10:43

DeptAction.java

package cn.bdqn.action;

public class DeptAction extends ActionSupport{

private IDeptService deptService;
private List<Dept> deptList;
private JSONObject json;

public void findDept(){
deptList = deptService.findDeptAll();
JSONArray array = new JSONArray();
Map<String, Object> map;
for (Dept dept : deptList) {
  map = new HashMap<String, Object>();
  map.put("dname", dept.getDname());
  map.put("deptno", dept.getDeptno());
  array.add(map);
}
json = new JSONObject();
json.put("dept", array.toString());

....省略getter/setter方法

}

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts
PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

<package name="json_default" namespace="/" extends="json-default">
  <action name="findDept" class="cn.bdqn.action.DeptAction"     method="findDept">
    <result type="json">
      <param name="root">json</param>
    </result>
  </action>
</package>


</struts>

xxx.jsp

-----关键代码

<script type="text/javascript">
$(function(){
  $.ajax({
    url:'findDept.action',
    type:'post',
    dateType:'json',
    success:function(json){
      alert(json);
      alert(json[1].dname);
    }
  });
 });
</script>

在控制台输出json数据

{"dept":[{"dname":"产品部","deptno":6},{"dname":"AAA","deptno":60}...]}

在jquery  ajax中获取不到 json数据  请大神帮忙看一下  谢谢

一个点的未来的主页 一个点的未来 | 菜鸟二级 | 园豆:204
提问于:2016-10-15 23:47
< >
分享
最佳答案
0

你js是个数组?,你json[1]意思他就是个数组,但是看你的json明明不是,只是有一个数组的属性而已,试试json.dept[0].dname

奖励园豆:5
顾晓北 | 专家六级 |园豆:10898 | 2016-10-17 14:51

谢谢你  这个问题 解决了  不是没有  getter and setter 方法  是我  action里的方法没定义返回值

一个点的未来 | 园豆:204 (菜鸟二级) | 2016-10-20 10:43
其他回答(1)
0

这个好像就是没有定义getter and setter吧,其实没必要这么复杂,直接定义list,getter and setter,然后可以直接在jsp页面遍历出来,用forEach就可以

凯伦 | 园豆:186 (初学一级) | 2016-10-17 09:39

谢谢你  这个问题 解决了  不是没有  getter and setter 方法  是我  action里的方法没定义返回值

支持(0) 反对(0) 一个点的未来 | 园豆:204 (菜鸟二级) | 2016-10-20 10:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册