struts 2 action :
private Map<String,Object> mapdata;
setter getter 方法省略
public String findAll(){
PerList perlist = new PerList();
perlist.setAdminId(6);
List<PerList> perlists = perlistDao.findByExample(perlist);
System.out.println(perlists.get(0).getPerMenuId());
mapdata = new HashMap<String,Object>();
//System.out.println("-"+perlists.toString()+"-");
//ServletActionContext.getRequest().setAttribute("data", jsonobject.toString());
mapdata.put("list", "han");
mapdata.put("list2", "zhi");
mapdata.put("list3", "kai");
return "allper";
}
通过getter 方法,返回要转成json数据的内容。
struts.xml
<package name="main" extends="struts-default,json-default" namespace="/">
<action name="perlist" class="perlistAction" method="findAll">
<result type="json" name="allper">
<param name="root">mapdata</param>
</result>
</action>
</package>
jsp页面
解析map数据,
<body>
<input type="button" id="btn" value="获取服务器信息">
<div id="div" style="height: 100px;width:300px;border:1px solid;"></div>
</body>
<script type="text/javascript">
$("#btn").click(function(){
$.get("perlist!findAll.action",function(mapdata,status){
alert("haha");
alert("数据为"+mapdata.list);
alert("发送状态"+status);
$("#div").append(mapdata.list);
$.each(mapdata, function(key, value) {
$("#div").append(key+"--"+value);
});
});
});
</script>
解析数据
修改:
action 中添加对应setter getter方法
struts.xml 添加返回结果
<param name="root">perlists</param>
jsp 中
//解析数组
$.each(perlists,function(i,perlists){
alert(perlists.id+"-"+perlists.adminId+"--"+perlists.perMenuId);
$("#div").append(perlists.id+"-"+perlists.adminId+"--"+perlists.perMenuId);
});
其中 $.each(),接受两个参数。
第一个:要遍历的对象 perlist
第二个:遍历函数: 其中 i 为起始地址下标。perlists 为自定义的对象别名,可随意指定。