Ajax接收並顯示後臺傳來的list集合內的數據信息

最近在學習Ajax作一個留言系統的時候碰到須要將list集合從後臺傳到前臺ajax接收並顯示的狀況,在網上搜了不少,但不少狀況都不是和我碰見的狀況同樣的,如今,直接貼出個人問題及解決方法。
後臺代碼:html

@RequestMapping(value="/findReply") @ResponseBody public Map<String, Object> findReply(int mid){ System.out.println("mid:"+mid); List<Reply> replies=replyService.findReply(mid); Map<String, Object> map = new HashMap<String, Object>(); map.put("replies", replies); return map; }

後臺是springMVC,將查詢的集合replies放進map,返回到前臺。ajax

前臺ajax接收代碼以下:spring

var mid; function LookReply(mid){ $.ajax({ dataType:"json", type:"POST", url:"../reply/findReply.action", data:{mid:mid}, success:function(data){ var arr=data.replies;//若是前方代碼取值不稱就用這個:jQuery.parseJSON(data).repliesfor(var i=0;i<data.replies.length;i++){ var name=arr[i].replier; var content=arr[i].reply; var time=arr[i].time; $('#reply_'+mid).prepend("<dl style='background-color:pink;'><dt>"+content+"</dt><dd>回覆者:"+name+"</dd><dd>回覆時間:"+time+"</dd></dl>"); } },error:function(data){ alert(系統錯誤); } }); }

注意:json

var arr=data.replies;

這部分代碼是,後臺傳出的是map,並非直接的list集合replies,list集合replies是放進map集合內傳出的,因此data接收的是map,須要顯示的是list集合replies內的信息,因此在前臺新new一個對象接收map內的replies集合,來代替replies。app

信息的獲取注意for循環內的代碼,固然也能夠使用each進行循環遍歷。學習

$('#reply_'+mid)

這個地方是和下邊的html代碼結合使用的,下邊的html代碼是循環輸出,因此使用信息的id動態爲div賦予id名。url

html代碼以下:spa

  <c:forEach items="${messages }" var="message">
            <div>
                <div>
                    <p><font color="red">${message.content }</font></p>
                </div>
                <div><button onclick="LookReply(${message.mid })">查看回復</button></div>
                <div id="reply_${message.mid }"></div>
            </div>

                <br>
        </c:forEach>
相關文章
相關標籤/搜索