【问题标题】:Iterating in jsp over Map<string,List<List<String>>>在 jsp 中迭代 Map<string,List<List<String>>>
【发布时间】:2016-01-12 11:33:04
【问题描述】:

我想遍历 Map > 在java中:

final JSONObject mappedData = new JSONObject();
final Map<String, List<List<String>>> associatedUsecasesMap = new HashMap<String, List<List<String>>>();
//some code that populates map.
mappedData.put("usecaseDetailsMap",associatedUsecasesMap);
return mappedData;

在jsp中 当我打印时

<a:text>${usecases.get('usecaseDetailsMap').get('ARRIVED')}</a:text>

我明白了

[["ABC","Realm","patluria","test","1444209946120"],["ABC","Realm","patluria","Abhinav","1444719147503"],["ABC","Realm","patluria","Abhinav","1444719147503"],["ss","Realm","patluria","sa","1443590024585"],["ABC","Realm","patluria","eef","1444382236881"],["passport","Realm","patluria","testing","1444368146430"],["ABC","Realm","patluria","eef","1444382236881"],["ABC","Realm","patluria","as","1444210103588"],["saasa","Realm","patluria","as","1444372196955"],["ABC","Realm","patluria","sasd","1444727640485"],["ABC","Realm","patluria","eef","1444382223024"],["ss","Realm","patluria","sa","1443590006005"],["asa","Realm","patluria","asa","1444386667440"],["ABC","Realm","patluria","dadda","1444639933870"],["asa","Realm","patluria","asa","1444386667440"],["ABC","Realm","patluria","sasd","1444727626874"],["ss","Realm","patluria","sa","1444414479534"],["ABC","Realm","patluria","asa","1444729340806"],["ABC","Realm","patluria","as","1444209965115"],["ss","Realm","patluria","sa","1443590024585"],["saasa","Realm","patluria","as","1444372196955"]]

但我想对此进行迭代,所以我正在这样做

<c:forEach items="${usecases.get('usecaseDetailsMap')get('ARRIVED')}" var="usecase" >

但我收到以下错误:javax.servlet.jsp.JspTagException: 不知道如何迭代 中提供的“项目”

我能知道如何根据指定的键迭代列表吗?

【问题讨论】:

    标签: json jsp jsonobject


    【解决方案1】:

    当您迭代 Map 时,JSTL forEach 将其用作 Map.Entry 实例。然后你可以在jsp中使用entry.key & entry.value。因此,您可以直接在 JSTL 中使用 Map,如下所示:-

    <c:forEach var="usecaseDetails" items="${usecaseDetailsMap}">
      ${usecaseDetails.key} ${usecaseDetails.value}
    </c:forEach>
    

    【讨论】:

    • 我想要的不是那个。我想根据地图中的键获取 List> 。那么我需要对其进行迭代。
    • @Abhinav 一旦你得到密钥然后检查是否相等,你就可以使用c:if 获取它的值,然后使用c:forEach 再次迭代值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-01
    • 2018-09-22
    • 2020-01-26
    • 1970-01-01
    • 2019-09-10
    • 2021-03-25
    • 2020-08-01
    相关资源
    最近更新 更多