choose - 여러 조건을 비교할 때 사용
문법)
<c:choose>
<c:when test='조건식'>
조건에 맞을 때 수행될 문장들...
</c:when>
<c:when test='조건식'>
조건에 맞을 때 수행될 문장들...
</c:when>
<c:otherwise>
모든 조건에 맞지 않을 때 실행
</c:otherwise>
</c:choose>
반복문
forEach : 인덱스를 출력하거나 배열, java.util.Collection을 반복하여 모든 방의 값을 출력할 때 사용..
인덱스 출력
문법)
<c:forEach var='변수명' begin="시작값" end="끝값" step="증가값" >
반복수행될 문장들
el ( ${} )에서 var의 변수명을 사용하면 begin에서부터 end까지의 값을 사용할 수 있다..
</c:forEach>
배열, java.util.Collection출력하기.
숫자(인덱스)를 출력하는 속성은 사용하지 않는다.(begin, end, step) //작성해봐야 동작하지 않는다
인덱스를 사용하고 싶다면 varStatus 속성을 사용한다.
문법)
<c:forEach var="변수명" items=${배열명,Collection}" varStatus="증가하는 값을 저장할 변수">
${변수명} //방의 값을 저장할 변수임
</c:forEach>
사용법)
<%
1.배열, Collection생성
String[] arr={값 , , };
2.scope객체에 저장 (EL에서 직접 사용할 수없으므로)
pageContext.setattribute("arr",arr);
%>
<c:forEach var="ele" items="${arr}" varStatus="i">
${i.index}
VO객체로 forEach사용하기.
EL에서는 getter method를 사용하여 값을 출력한다.
(get을 제외한 method명을 소문자로 기술하고, method기호 ()를 붙이지 않는다..)
private String name;
List에서 VO활용
1.List생성
List<VO> list = new ArrayList<VO>();
2.값 할당
list.add(new VO(값) , , );
3.scope 객체에 저장
pageContext.setAttribute("이름",list);
4.JSTL을 활용하여 반복으로 값 얻기
<c:forEach var = "VO객체" items="${list}">
${VO객체명.getter명}
</c:forEach>
forTokens
for문과 java.util.StringTokenizer 가 결합된 태그
CSV데이터를 자를 때 사용함(모든 문자열을 자를 수 있다)
<%
String csvData = "a,b,c,d,e"
pageContext.setAttribute("data",csvData);
%>
<c:forTokens var="변수명" items="${data}" delims="구분문자"/>
import
여러 JSP를 한번에 보여줄 때 사용함,.
보여질 때 (HTML 생성될 때) 합쳐지는 <jsp:include> 액션태그와 동일한 동작을 수행한다.....
URL을 지원(끼워지는 JSP가 다른 서버에 존재 하더라도 include가 가능하다)
페이지 지시자의 충돌이 발생하지 않는다, 변수,method가 공유되지 않는다
//jsp:include는 디자인을 합칠 때 사용하며 uri를 사용한다
사용법)
<c:import url="포함될 jsp의 URL">
execption처리하기.
scriptlet(<%%>)과 expression(<%=%>)은 _jspService method안에 try~catch 블록 안으로 코드가 생성된다
개발자가 만든 코드가 컴파일 예외를 발생시켜도 자동으로 처리된다(Throwable)
//try catch를 하지 않아도 에러발생X=>이러면 문제는 에러메시지가 그대로 웹 브라우저에 출력된다.....
//서버의 정보가 외부로 노출되기에 저얼대 발생하면 안된다..
c:catch태그를 사용하면 발생되는 예외를 잡을 수 있다..
c:if를 사용하여 예외상황의 메시지를 출력할 수 있음.
사용법)
<c:catch var="객체명" >
<%
예외발생 예상 코드
%>
</c:catch>
<c:if test="${ not empty 객체명}" > // ${객체명 !=null},
예외 발생했을때 처리 할 코드
</c:if>
redirect
-페이지 이동기술,,
접속자에게 페이지를 응답한 후 접속자 브라우저가 자동으로 재 요청하는 방식
웹 브라우저는 페이지의 이동을 알고 있다.. URL이변경된다
sendRedurect method 와 return이 합쳐진 태그이다.
사용법)
<c:redurect url="이동할 페이지의 URL"/>