zoukankan      html  css  js  c++  java
  • 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还真是花里胡哨的,这样也可以。

  • 相关阅读:
    史蒂夫·乔布斯-读书笔记3
    史蒂夫·乔布斯-读书笔记2
    史蒂夫·乔布斯-读书笔记1
    Mac配置Qt环境——Could not resolve SDK path for 'macosx10.8'
    相信
    搞笑语录 一
    C++ 引用
    C++ inline函数
    AI-随机迷宫&迷宫求解
    sizeof && strlen 的区别
  • 原文地址:https://www.cnblogs.com/Kingram/p/9848716.html
Copyright © 2011-2022 走看看