【问题标题】:How to iterate the map by using jstl?如何使用jstl迭代地图?
【发布时间】:2014-03-28 05:45:14
【问题描述】:

谁能解释一下如何在下面的示例中使用 jstl 单独迭代此地图并报告给我。

Map<String, List<Object>> map = new HashMap<String, List<Object>>();
    List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId);
    map.put("department", department);
    map.put("allreportingTo", allreportingTo);
    map.put("alldepartments", alldepartments);
request.setAttribute("map", map);

【问题讨论】:

    标签: java spring jsp map jstl


    【解决方案1】:

    如下图:

    <c:forEach var="entry" items="${map}">
      Key: <c:out value="${entry.key}"/>
      Value: <c:out value="${entry.value}"/>
    </c:forEach>
    

    使用如下键从地图中获取列表值:

    ${map.department}
    

    并且可以遍历列表,如下图:

    <c:forEach items="${map.department}" var="element"> 
      <tr>
        <td>${element.deptName}</td>
      </tr>
    </c:forEach>
    

    【讨论】:

    • 如何单独迭代内部列表。
    【解决方案2】:

    试试这个,

    List<String> list = new ArrayList<String>(map.keySet());
    request.setAttribute("list", list);
    
    <c:forEach< items="${list}" var="entry">
        <c:forEach items=${map[entry]} var="employeeDept">
            <c:out value ="${employeeDept.name}"/> 
    // get some more values like this
        </c:forEach>
    </c:forEach>
    

    【讨论】:

      【解决方案3】:

      你在写

      Map<String, List<Object>> map = new HashMap<String, List<Object>>();
      List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId);
      List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId);
      map.put("department", department);
      

      键映射为字符串,值映射为对象列表,但您作为值存储在 EmmployeeDeparment 映射列表中

      所以为了开始工作,你需要改变如下:

      Map<String,  List<EmployeeDeparment>> map = new HashMap<String,  List<EmployeeDeparment>>();
      List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId);
      List<EmployeeDeparment> department = Emp.getEmployeeDepartment(EmployeeId);
      map.put("department", department);
      and  your remain code...
      

      <c:forEach items="${map}" var="m">
          <c:forEach items="${map.value}" var="list">
              ${list.id }
              ${list.name }
          </c:forEach>
      </c:forEach>
      

      【讨论】:

        【解决方案4】:
        <c:forEach items="${map.department}" var="dept">
             ${dept.deptName}                   
        </c:forEach>
        

        Insted of deptName 获取您的模型属性。

        【讨论】:

          猜你喜欢
          • 2013-01-07
          • 1970-01-01
          • 1970-01-01
          • 2013-02-19
          • 2011-01-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多