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


最近在學習Ajax做一個留言系統的時候碰到需要將list集合從后台傳到前台ajax接收並顯示的情況,在網上搜了很多,但很多情況都不是和我遇見的情況一樣的,現在,直接貼出我的問題及解決方法。
后台代碼:

    @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接收代碼如下:

    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(系統錯誤);
            }
        });
    }

注意:

var arr=data.replies;

這部分代碼是,后台傳出的是map,並不是直接的list集合replies,list集合replies是放進map集合內傳出的,所以data接收的是map,需要顯示的是list集合replies內的信息,所以在前台新new一個對象接收map內的replies集合,來代替replies。

信息的獲取注意for循環內的代碼,當然也可以使用each進行循環遍歷。

$('#reply_'+mid)

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

html代碼如下:

      <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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM