JS中遍歷EL表達式中后台傳過來的Java集合


前言:在我的項目里有這么一個情況,后台直接model.addAttribute()存儲了一個對象,此對象內部有一個集合,前端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還真是花里胡哨的,這樣也可以。


免責聲明!

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



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