EL

7.JSTL-forEach의 태그와 기본속성.

Jungsoomin :) 2020. 7. 15. 18:12

jstl에 대한 의존이 먼저 필요하다는 사실을 기억한다.

 

<c:forEach>로 사용된다.

  1. 해당 태그의 속성 목록

  2. var=변수명지정

  3. items=forEach문에 사용할 객체를 EL(${}})로 지정

  4. varStatus=변수상태에대한 것으로 지정해놓고 . 를 통해 index last first등을 사용

  5. begin=시작할 인덱스넘버

  6. end=끝나는 인덱스넘버

  7. step=반복시 증가수치

 

<body>
	<%--
		c:forEach로 사용

		#attribute 306p
		
		var 
		items
		varStatus
		begin
		end
		step
	 --%>
	 
	 <c:forEach var="i" begin="1" end="3">
	 	${i } <br />
	 </c:forEach>
</body>

var로 변수명을 지정하고 인덱스넘버는 1~3까지 움직인다. EL로 var명을 지정하여 출력

 

배열이나 컬렉션 객체들을 하나씩 꺼내 쓴다는 점으로 보아서 자바의 forEach문과 흡사하다고 생각한다.


String 배열의 사용이다. jsp 내부에서 스크립틀릿으로 정의한 후 (JSP도 하나의 서블릿이며 Servlet 컨트롤러 사용시 Servlet이 포워드한다는 원리를 이해해야한다.)

var속성으로 변수명으로 item을 지정하고 items 로 배열 객체를 EL로 표현한다. 

 

begin 속성으로 시작인덱스를 지정, end 속성으로 종료 인덱스를 지정한다. step으로는 인덱스 증가값을 설정한다.

 

즉, page~~>application 까지 서칭을 하는 범위에서 request에 키인 strArr의 값을 가져온다는 것이다.

pageContext.getReqeust().getAttribute("strArr"); 이 되는 듯 하다. 

 

forEach문으로 해당변수에 하나씩 꺼내와 출력시키는 과정으로 본다.

   for(Stirng item : strArr){

     out.print(item+"<br/>")

   }

로 보인다. 

<body>
	<%
	String[] arr = {"java","html","css","jquery","bootstrap"};
	request.setAttribute("strArr", arr);
	%>
	
	<c:forEach var="item" items="${strArr}">
		${item} <br />
	</c:forEach>
	${item}
	<hr />
	
	<c:forEach var="item" items="${strArr}" begin="1" end="3">
			${item} <br />
	</c:forEach>
	<hr />
	
	<c:forEach var="item" items="${strArr}" step="2">
		${item} <br />
	</c:forEach>
</body>