使用Strust2生成JSON数据,使用jQuery解析json数据

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 为自定义的对象别名,可随意指定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值