Meat_roast_Engineer
40
2020-01-03 09:39:41 작성 2020-01-03 09:49:19 수정됨
5
123

리스트 안에 hashmap을 넣었습니다.


ArrayList<Entry<String, Integer>>keywordMap

이라는 객체에 다음과 같은 형태로 값이 들어가 있습니다.(디버깅 결과를 그대로 복사해 왔습니다.)


[분석=22, 금융=20, 고객=11, 데이터=11, 자산=9, 주식=8, 예측=7, 정보=7, 모델=6, 기반=4, data=3, 추천=3, 숫자=3, learning=1, text=1]



이때 각 map의 키 값을 뷰에서 javascript 를통해 핸들링 하고싶은데 값을 꺼내오는 방법을 모르겠습니다.

<c:forEach items="${keywordMap}" var="keywordMap" varStatus="status">

    ${keywordMap.key}

</c:forEach>


위와 같이 jstl을 사용하면 view 상에 key값을 나열할 수 있습니다.


하지만 script태그 내에서는 value를 출력하면 22, 20 등의 숫자가

key를 출력하면 index값이 나옵니다.

어떻게 꺼내와야 할까요.


위 ${keywordMap} 자체를 console.log 하면 22,20,11,11 ... 등의 숫자만 나열됩니다.

keywordMap라는 변수에 담고


keywordMap[data] 를 로그 찍으면 11

keywordMap[text] 를 로그 찍으면 20

keywordMap[분석] 을 로그 찍으면 undefined가 뜨는것으로 보아

각 key값에 매핑된 value 값이 index로 들어가 출력되는것 같습니다.





0
0
  • 답변 5

  • Java개발자입니다
    1k
    2020-01-03 09:52:02

    <c:forEach items="${keywordMap}" var="Map" varStatus="status">

              <c:forEach  items="${Map} var="key">

                      ${key.key}

                      ${key.value}

              </c:forEach>

    </c:forEach>

    0
  • Java개발자입니다
    1k
    2020-01-03 09:52:28

    리스트안에있는 요소하나하나가 맵형태라 그 맵을 한번더 돌리셔야합니다.

    0
  • Meat_roast_Engineer
    40
    2020-01-03 10:16:28

    답변감사드립니다. JAVA개바자입니다 님!

    알려주신대로 화면에서 forEach문을 돌려 보았습니다.

    <c:forEach items="${keywordMap}" var="Map" varStatus="status">

              <c:forEach  items="${Map} var="key">

                      ${key.key}

                      ${key.value}

              </c:forEach>

    </c:forEach>

    그런데 'Don't know how to iterate over supplied "items" in $lt;foeEach&gt;라는 에러가 발생하였습니다.

    아무래도 foreach를 돌릴수 없는 형태에 forEach를 사용했다는 의미인것 같습니다.


    혹시 조금만 더 도와주실수 있을까요

    0
  • Java개발자입니다
    1k
    2020-01-03 10:31:46

    List안에 Entry를 넣지말고 HashMap을 넣어보세요. HashMap도 forEach 돌릴수있고

    내부적으로 Map을 forEach돌리면 Entryset으로 반환되어집니다.

    0
  • Meat_roast_Engineer
    40
    2020-01-03 11:29:12

    감사드립니다 개발자님 ㅎㅎ

    hash맵 value 값을 통한 정렬을 위해 entry를 사용했는데 value를 각각 구하여

    비교하는식으로 수정하고 타입은 hashmap 그대로 유지해야겠네요!


    설명해주셔서 감사합니다!!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.