1.在jsp頁面中嵌套 java代碼:
首先jsp頁面中導入java的工具類
<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
//在js中插入java代碼操作 <% //取出java后台設置好的userList List<Map<String,String>> userList = (List<Map<String,String>>)request.getAttribute("userList"); //如果userList的值為空則實例化 if(userList==null){ userList = new ArrayList<Map<String,String>>(); } %> //如果userList內有數據 if (<%=userList.size()%>>0) { <% //遍歷list中的內容 for (Map<String,String> user : userList) { String userId = user.get("userId"); String userName = user.get("userName"); %> //在java遍歷中調用js方法,傳參 toAdd("<%=userId%>","<%=userName%>"); <% } %> //如果userList中無知就要把java后台設置好的兩個參數拿出來做參數 }else{ //銷售人員ID var userId = "${userId}"; //銷售人員姓名 var userName = "${userName}"; toAdd(userId,userName); }
2.在jsp頁面中forEach獲取:
<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>
3.在后台先把list轉成json格式,然后js中使用var arr = eval(‘${list}');將list轉成js數組。
后台
JSONArray object=JSONArray.fromObject(yourlist);
request.setAttribute("agentsList", object);
前台
var agentsList = eval('${agentsList}') for (var i = 0; i < agentsList.length; i++) { var array_element = agentsList[i]; }
4.后台還是把list轉成json,js中使用var arr = jQuery.parseJSON('${list}')將list轉成數組
var arr = jQuery.parseJSON('${list}') for (var i = 0; i < list.length; i++) { var array_element = list[i]; //alert(array_element.agentPhone); }
5.后台是springMVC,將查詢的集合replies放進map,返回到前台。
后台:
@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; }
前台:
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).replies; for(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(系統錯誤); } }); }