forEach를 이용해서 JSTL로 출력하기

                           

JAVA에서 VIEW단으로 리턴한 데이터 객체를 JSTL 문법을 써서 쓰는 방법.

 

 

JAVA에서 보낸 객체가 이런형태로 생겼다고 하자.

 

[

[{key1 = lion, key2 = cat}], 

[{key1 = apple, key2 = melon}]

]

 

자바에선 List<List<HashMap<String, String>>>  이런 곳에 담겨있던 데이터이다.

복잡한가..?ㅋㅋ

 

 

 

key1, key2에 있는 값을 출력해보자.

 

 

1. 맨 바깥 리스트 벗기기

 

java에서 modelData 란 이름으로 저 데이터를 넣었다.

 

<c:forEach items="${modelData}" var="list">

${list} <br/>

</c:forEach>

 

 

포이치 한번 돌린 ${list}엔 뭐가 들어있을까?

바깥 리스트 껍데기가 하나 벗겨진

 

 

[{key1 = lion, key2 = cat}] 

[{key1 = apple, key2 = melon}]

 

이것이 출력된다.

 

 

2. 안쪽 리스트 벗기기 

 

그다음 바깥 리스트들을 빼야한다.

포이치를 한번 더 돌린다.

 

 

<c:forEach items="${modelData}" var="list">

<c:forEach items="${list}" var="map">

${map} <br/>

</c:forEach>

</c:forEach>

 

 

이젠 아래와 같이 맵들만 남는다.

 

{key1 = lion, key2 = cat} 

{key1 = apple, key2 = melon}

 

 

 

3. key1, key2의 값을 출력하기

 

 

<c:forEach items="${modelData}" var="list">

<c:forEach items="${list}" var="map">

${map[key1]} <br/>

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

</c:forEach>

</c:forEach>

 

 

${map[key1]} 또는 ${map.key1} 하면 그 키의 값이 출력될 것이다.

 

 

 

4. 두번째 리스트의 key2만 출력하기

 

melon이 나오도록 해보자.

 

그냥 ${modelData[0][1][key2]} 이렇게 해도 그만이긴 한데

나는 인덱스 개념을 알려주고 싶다. ㅋㅋㅋㅋ

 

 

 

 - JSTL에서의 인덱스 사용방법부터!!!

 

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

${status.count}<br/>

</c:forEach>

 

이렇게 하면 포가 돌때마다 카운트가 증가한다.

만약 5번 돌았다면,

1

2

3

4

5 가 출력됐을것이다.

 

${status.count} 말고도 다른것도 있다.

${status.index} 라고 쓰면 0부터 시작이 된다.  (count는 1부터 시작)

 

5번 돌았다면

0

1

2

3

4 가 출력된다.

 

그 이외에도 아래와 같은것이 있다.

여기 잘 나와있음 http://www.ibm.com/developerworks/kr/library/j-jstl0318/

 

난 count랑 index를 자주 쓰게 되는듯.

 

 

속성 Getter Description
current getCurrent() 현재 반복 라운드 아이템
index getIndex() 현재 반복 라운드의 제로 기반(zero-based) 인덱스
count getCount() 현재 반복 라운드의 1 기반(one-based) 인덱스
first isFirst() 현재 라운드가 반복을 통한 첫 번째 패스임을 나타내는 플래그
last isLast() 반복현재 라운드가 반복을 통한 마지막 패스임을 나타내는 플래그
begin getBegin() begin 애트리뷰트의 값
end getEnd() end 애트리뷰트의 값
step getStep() step 애트리뷰트의 값

 

 

 

 

다시 본론으로 들어가서 ,

melon이 나오도록 해보자.

 

 

 

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

<c:if test="${status.index eq 1}>

${list[status.index][key2]} <br/>

</c:if>

</c:forEach>

 

 

이렇게 배열의 인덱스로 응용해서 사용이 가능하다!



출처: http://marobiana.tistory.com/9 [Take Action]

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
86 Spring Form데이터 컨트롤러에서 처리 file 졸리운_곰 2018.01.24 65
85 Spring〃스프링 MVC 패턴의 흐름 file 졸리운_곰 2018.01.23 138
84 Spring 태그 <form:form> <form:select> 졸리운_곰 2018.01.23 51
83 JSTL substring 문자열 자르기 졸리운_곰 2018.01.19 178
» forEach를 이용해서 JSTL로 출력하기 졸리운_곰 2018.01.18 562
81 JSP JSTL Map 사용 하기 졸리운_곰 2018.01.18 50
80 Jsp〃[EL]과 [JSTL] 한방에 정리 + Core file 졸리운_곰 2018.01.18 87
79 [Oracle] java.sql.SQLSyntaxErrorException: ORA-00911: 문자가 부적합합니다 졸리운_곰 2018.01.18 50
78 스프링(Spring) 개발 - (18) 페이징 (jQuery와 Ajax) file 졸리운_곰 2018.01.17 176
77 스프링(Spring) 개발 - (17) 페이징 (전자정부 프레임워크 이용) file 졸리운_곰 2018.01.17 455
76 스프링(Spring) 개발 - (16) AOP 설정하기 (부제: Controller에도 AOP 적용하기) file 졸리운_곰 2018.01.17 80
75 스프링(Spring) 개발 - (15) 파일 업로드 & 다운로드 (3/3) file 졸리운_곰 2018.01.17 239
74 스프링(Spring) 개발 - (14) 파일 업로드 & 다운로드 (2/3) file 졸리운_곰 2018.01.17 198
73 스프링(Spring) 개발 - (13) 파일 업로드 & 다운로드 (1/3) file 졸리운_곰 2018.01.17 219
72 스프링(Spring) 개발 - (12) 게시판을 만들자! - 게시판 상세 및 등록 file 졸리운_곰 2018.01.17 173
71 스프링(Spring) 개발 - (11) HandlerMethodArgumentResolver 적용 file 졸리운_곰 2018.01.17 42
70 스프링(Spring) 개발 - (10) 게시판을 만들자! - 게시판 목록 file 졸리운_곰 2018.01.17 114
69 스프링(Spring) 개발 - (9) Mybatis (마이바티스) 연동하기 file 졸리운_곰 2018.01.17 59
68 스프링(Spring) 개발 - (8) 로그 (Log4j) 및 인터셉터 (Interceptor) 설정 file 졸리운_곰 2018.01.17 76
67 스프링(Spring) 개발 - (7) Spring MVC 구조 및 설정파일 file 졸리운_곰 2018.01.17 168
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED