@ 주제
JSTL Core 정리
@ 목적
JSTL Core에 대해 알아본다
@ 내용
(1) Core (prefix : c)
→ 일반 프로그래밍에서 제공하는 것과 유사한 변수선언
→ 실행 흐름의 제어 기능을 제공
→ 페이지 이동 기술 제공
URI → http://java.sun.com/jsp/jstl/core
선언 : <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
EL사용을 위함 :<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR" isELIgnored="false"%>
페이지를 인코딩하는 부분 마지막에 isELIgnored="false" 를 추가하면 EL을 사용할 수 있게 됩니다.
1. <C:set>
사용범위에 맞는 위치에 선언해주세요~
자바의 int num = 100; 을 <c:set var="num" value="100"> 로 쓸 수 있습니다. 선언한 값은 ${num} 으로 해당 페이지 내에서 사용가능합니다.
2. <c:out>
system.out.println(" 안녕하세요 ");을 간단하게 <c:out value=" 안녕하세요 "> 표현가능 이 태그는 특수문자를 그대로 출력합니다.
3. <c:remove>
한 영역의 변수명을 지우는 코드입니다. 만약에 영역을 생략할 경우 모든 영역의 변수가 삭제됩니다.
Attribute에서 정리했다 시피 (page → request → session → application) 순서의 영역을 가집니다.
4. <c:if>
자바의 if - else 문과 동일하지만 JSTL에서는 else문이 없습니다. 여기서 scope값을 생략하면 기본으로 page영역이 지정됩니다.
else 처리를 하고 싶거든 5번 참조~~
5. <c:choose> / <c:when> / <c:otherwise> <- 이게 else 처리를 가능케함
자바의 switch 구문과 if-else 구문을 혼합한 형태로 다수의 조건문을 걸고 싶을때 사용합니다.
6. <c:forEach>
자바에서는 for문으로 불리던게 JSTL에서는 forEach로 변경되었습니다. 배열이나 컬렉션, Map에 저장되어 있는 값들을 순서대로 처리 할때 사용되며, <c:forEach var=" i" begin=" 1 " end=" 10 " step=" 1 "> ${ i } </c:forEach>로 i가 1부터 10까지 1씩 증가한다는 구문을 쉽게 만들 수 있습니다.
<c:forEach items="${Member (리스트 또는 내가 출력하고자하는 값을 담은 변수) }" var="item" varStatus="st">
만약 Member는 vo 이며 name 이라는 getter setter 을 가지고 있다면
${item.name} 로 Member.getName()을 출력할 수 있다 .
</c:forEach>
7. <c:forTokens>
자바의 StringTokenizer 를 JSTL를 사용하면 아주 간편하게 사용할 수 있습니다.
<c:forTokens var="abc" items="안녕/하세요/hunit블로그/입니다" delims="/" >이렇게 코드를 작성할 수 있겠죠.
8. <c:catch>
try{
자바에서는 여기에 행동
} catch (Exception err){
에러내용 표시
}
<c:catch var= "abc ">
JSTL에서는 여기에 행동
</c:catch>
태그 밖에 ${abc}를 사용하여 에러내용
자바의 Try-catch 구문과 같음. 단 <c:catch>태그는 에러내용을 ${abc}로 빼내서 처리해줘야 합니다.
9. <c:redirect>는 아래와 같이 파라미터 값을 지정된 url로 보냅니다.
<c:redirect url="baordList.jsp">
<c:param name="abc" value="안녕하세요" />
</c:redirect>
10. <c:import>는 <jsp:include>와 비슷합니다.
11. <c: url>은 <c:set>과 비슷하며 GET방식으로 파라미터를 전달합니다.