티스토리 뷰
[JSTL] foreach / Hashmap형태 데이터가 있을때 / 배열일때 / index=varStatus
/daydreamer 2017. 8. 20. 22:41뭔가 팝업이 뜨거나 모달이 뜰때
데이터를 바로 뿌려야 하는 경우가 있다.
나의 경우는 ModelAndView에서 데이터를 가져와 addObject를 해서 바로 뿌려주는데
그때 Selectbox를 표시하거나 , 배열의 값을 전달해야 하는 경우 javascript에서 <C: 태그를 사용한다.
이때 중요한건 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 선언해주어야 한다.
나는 HashMap형태로 지정해준 배열의 안에 key, value 형태의 값이 있는 리스트를 가져왔었는데,
이번에 그냥 String[] 형태의 값을 리스트로 가져오게 되어 두가지 방법을 포스팅 하려고 한다.
1. HashMap 으로 key value 값이 있는 경우
리스트를 조회하는 경우였다.
쿼리에서 id와 이름을 가져왔다.
Controller에서 List<HashMap> 형태로 리턴받은 후 addObject("hostList , hostList)로 넣어주었다.
JSP 파일 javascript에서
1 2 3 4 5 | var hostList = new Array(); <c:forEach items="${hostList}" var="hashMapHostList" > hostList.push("${hashMapHostList.vds_id}"); hostList.push("${hashMapHostList.vds_name}"); </c:forEach> | cs |
이렇게 뿌려주었다.
items 에는 내가 명시적으로 지정한 배열 이름이 오고, var변수에는 foreach문안에서 사용될 변수이름이다.
우리 선임님 말씀으로는 hashMapHostList는 Arr이라치면 Arr[0] Arr[1] 이런식이라고 하셨다.
var로 선언해준 hostList라는 배열에 push 해주면
1 2 3 4 | for (var i=0; i<hostList.length;){ appendStr = "<option value='" + hostList[i++] + "'>" + hostList[i++] + "</option>" + "\n"; $("#hostOption").append(appendStr); } | cs |
이런식으로 꺼내쓸 수 있다.
2. String[] 형태의 값을 가져오는 경우
이경우는 Controller에서 String[] 형식의 배열을 addObject("vmInfoList" , vmInfoArr) 로 넣어주었다.
나는 이걸 JSP 팝업창으로 받아서 , 팝업창에서 ajax를 호출할때 다시 java로 넘겨줄 생각이었다.
이때는 key value 형태가 아니어서, index가 필요하였다. arr[0] arr[1] 이런식으로
JSP 파일 javascript에서
1 2 3 4 | var uuidList = new Array(); <c:forEach items="${vmInfoList}" varStatus="status"> uuidList.push("${vmInfoList[status.index]}"); </c:forEach> | cs |
items는 아까와 동일하게 내가 명시해준 배열의 이름이고,
varStatus는 상태용 변수라고 하는데 상태용 변수.index를 하면 0부터 증가한다.
그러니까 아까의 var변수와 같은 느낌?
그래서 vmInfoList[상태용변수.index]가 되는것이다.
어렵지만, 기억하자 !
이분이 정리를 잘해놓으셨다.
'업무 > 스프링프로젝트' 카테고리의 다른 글
[JS] idx로 화면 로테이션 (0) | 2017.11.20 |
---|---|
[JS] radio 버튼클릭 이벤트 / 동적으로 제어하기 (0) | 2017.08.20 |
[mybatis] foreach 배열 넘길때 파라미터 바인딩 / foreach / @Param (0) | 2017.08.20 |
[JS] jQuery 리스트 체크박스 group / 전체선택/해제 /Checkbox (0) | 2017.05.29 |
[JAVA 에러] java.lang.IllegalStateException: Ambiguous mapping found. (0) | 2017.05.22 |
- Total
- Today
- Yesterday
- input[type=file]초기화
- 게시판table설계
- 체크박스전체해제
- 윈도우8.1
- foreach 배열
- servlet
- jsp
- 스크립팅 요소
- Split
- spring
- 스프링
- c 태그
- servlet게시판
- windows hyper-v
- Javascript
- String[] 파라미터
- jsp 기초 개념
- SQL
- selectbox에 값 매핑
- java
- 게시판페이지설계
- windows 8.1
- 체크박스전체선택
- 제이쿼리
- 자바
- Hyper-V
- input[type=text]초기화
- 이클립스DB연결
- 자바스크립트
- 체크박스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |