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数据 请大神帮忙看一下 谢谢
你js是个数组?,你json[1]意思他就是个数组,但是看你的json明明不是,只是有一个数组的属性而已,试试json.dept[0].dname
谢谢你 这个问题 解决了 不是没有 getter and setter 方法 是我 action里的方法没定义返回值
这个好像就是没有定义getter and setter吧,其实没必要这么复杂,直接定义list,getter and setter,然后可以直接在jsp页面遍历出来,用forEach就可以
谢谢你 这个问题 解决了 不是没有 getter and setter 方法 是我 action里的方法没定义返回值