java後臺list集合傳值到前臺,再取值的幾種方法
阿新 • • 發佈:2018-12-11
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(系統錯誤);
}
});
}