JS中遍歷EL表示式中的集合
阿新 • • 發佈:2018-12-17
前言:在我的專案裡有這麼一個情況,後臺直接session.setAttribute()儲存了一個物件,此物件內部有一個集合,前端JSP處理的方法正常情況下就是直接使用EL表示式即可。但是如果在JS中需要使用這個集合中的值,那應該怎麼處理呢?
需求:JS中遍歷“${role.modules}”
解決方案:
①正常思路:
for(var i = 0;i<${roe.modules.size()};i++){ console.log(${role.modules[i].name}) }
然後發現取不到值。。哈哈。原因也很簡單,是因為EL表示式是一個整體,不能使用JS中的變數,role.modules[i].name中的i是取不到值的。
那想想別的辦法,JSTL中的<c:forEach>標籤是可以進行遍歷的,然後我就想能不能這麼寫,重新建立一個JS陣列,用<c:forEach>進行遍歷取值,再合成一個JS物件,再給新陣列新增元素,如下:
②我的方案:
var arr = new Array(); <c:forEach items="${role.modules}" var= "module"> var module = {"code":"${module.code}","name":"${module.name}"} arr.push(module) </c:forEach> for(var i = 0;i<arr.length;i++) { console.log(arr[i].name) }
哈哈,還真取到值了,JS還真是花裡胡哨的,這樣也可以。