Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- spring framework
- rest
- Java
- 재정의
- Gradle
- Render
- 지족동
- Restful
- SpringFramework
- springboot
- reactjs
- mybatis
- 스프링
- Stateless
- 스프링부트
- Ajax
- 스프링게시판
- spring
- react
- Maven
- 컴포넌트
- mysql
- spring게시판
- 리액트
- 다형성
- 둔산동
- State
- 자바
- 스프링 게시판
- 스프링프레임워크
Archives
- Today
- Total
Dev.GA
[jsp/jstl] <c:forEach>구문에서 break처리 본문
개발을 하던중 <c:forEach> 구문에서 break 처리를 해야할 일이 생겼다.
일반적으로 JAVA에서 for문을 사용할시에는 break처리가 간단하지만 <c:forEach> jstl에서는 break를 지원하지 않는다고 한다.
먼저, jstl에 대해서 알아보자.
JSTL이란?
- JSTL이란 JSP표준라이브러리(JSP Standard Tag Library)의 약자로,
자주 사용할 수 있는 커스텀 태그들을 표준으로 모아둔 태그 라이브러리라 할 수 있다.
ex.) <c:if>, <c:choose>, <c:when>, <c:forEach> 등등...
JSTL에서 break를 지원하지 않기 때문에 생각해본게 JAVA와 크게 다를게 없었다.
어차피 if문을 통해 걸러내야하는것은 같음으로, <c:set>을 이용해 변수처리로 실제 break가 일어나지는 않지만 break처럼 처리해버리도록 하였다.
예제
1 2 3 4 5 6 7 8 | <c:set var="loop_flag" value="false" /> <c:forEach var="items" items="${resultList }" varStatus="status"> <c:if test="${not loop_flag }"> <c:if test="${resultList eq items.value }"> <c:set var="loop_flag" value="true" /> </c:if> </c:if> </c:forEach> | cs |
<c:set>을 이용 변수 loop_flag를 false로 지정하고
<c:forEach>구문 실행시 <c:if>문으로 판단하여 특정 원하는 값에서 loop_flag값을 true로 변경해버린다.
이렇게 되면 3번째 라인, loop_flag변수를 검출하는 <c:if>문에서 거짓된 조건으로 마치 JAVA에서 break구문과 같은 결과를 얻을 수 있다.
또 다른 방법으로 scriptlet(스크립틀릿)의 <% break; %>구문으로도 같은 효과를 얻을 수 있지만
scriptlet을 사용하지 않는 본인으로써는 JSTL로 처리하였다.
'Dev.Front-End > javascript' 카테고리의 다른 글
[Ajax] Ajax란 무엇인가? (0) | 2018.03.12 |
---|
Comments