봉봉의 개인 블로그
2018-09-18(JSTL의 기본적인 사용 문법) 본문
JSTL 기본적인 사용 문법
JSTL 태그 선언
web.xml 에 선언하거나 jsp문서 상단에 라이브러리를 import하여 사용할 수 있으며 보통 아래와 같은 태그라이브러리를 자주 사용한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <!-- c 태그 라이브러리 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <!-- fmt 태그 라이브러리 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> <!-- sql 태그 라이브러리 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql" %> <!-- x 태그 라이브러리 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/x" prefix="x" %> <!-- fn 태그 라이브러리 --> <%@ taglib uri="http://java.sun.com/jsp/jstl/fn" prefix="fn" %> | cs |
EL의 표기 및 연산자
JSTL 태그 라이브러리는 거의 모든 JSP spec을 커버할 수 있다.
그러나, 간단하게 표현하는 장점을 최대한 살리기 위해서는 표현식으로 EL과 결합하여 사용하여 일정한 표기만 사용하는 추세이다.
EL은 자바 코드가 아니며 스크립트 언어이다.
EL은 JSTL 태그와 결합하면 간단하고 편리한 표기를 사용하여 복잡한 작동이 표현될 수 있다. EL 익스프레션은 달러표시 와 중괄호를 앞에 붙여 사용하여 범위를 정한다.
-연산자-
관계 : <, lt, >, gt,<= , le, >=, ge, ==, eq, !=, ne
산술 : +, -, *, /, div, %, mod
논리 : &&, and, ||, or, !, not
타당성 검사 : empty
연산자를 이용하여 EL을 표기할때는 아래와 같이 쓸수 있다.
EL에서의 리터럴은 숫자, 캐릭터 String, 부울, null 등이 존재
EL 표현 단순화
EL은 아래와 같이 사용가능하며
1 2 3 4 5 6 7 8 9 | <!-- DB 데이터 표현시 --> ${name} <!-- 객체 값 가져 올때 --> ${user.name} <!-- 만약 저장 객체가 LIST일 경우 --> ${list["0"]} <!-- 위와 같은 표현도 가능 --> | cs |
[]안의 값은 list의 키값 or 프로퍼티명 or 인덱스이고 []의 왼쪽은 map,beans,array,list 타입이 올수 있다.
JSTL의 태그
본격적으로 JSTL의 표기법에 대해서 알아보도록한다.
12345678910111213141516171819202122 <!-- c:out object --><!-- :변수의 값을 출력한다. --><c:out value="expression" default="expression" [escapeXml="boolean]"/>escapeXml 애트리뷰트는 선택사항이다<c:out value="${userId}" default="Q u i c K" /> <!-- c:set object --><!-- :변수의 값을 저장한다. --><c:set var="name" [scope="scope"] value="expression"/><c:set var="cnt">1</c:set><c:set var="cnt" value="${cnt+1}" /> <!-- c:remove object --><!-- :범위 변수를 지우는데 사용한다. --><c:remove var="timer" scope="session"/> <!-- c:forEach object --><!-- :지정된 범위 내에서 반복을 통해 flow를 제어하기 위한 core 태그이다. --><c:forEach var="name" items="${expression}" [varStatus="name"][begin="expression"] [end="expression"] [step="expression"]>body content</c:forEach> cs
loop의 속성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <!-- c:out object --> <!-- :변수의 값을 출력한다. --> <c:out value="expression" default="expression" [escapeXml="boolean]"/> escapeXml 애트리뷰트는 선택사항이다 <c:out value="${userId}" default="Q u i c K" /> <!-- c:set object --> <!-- :변수의 값을 저장한다. --> <c:set var="name" [scope="scope"] value="expression"/> <c:set var="cnt">1</c:set> <c:set var="cnt" value="${cnt+1}" /> <!-- c:remove object --> <!-- :범위 변수를 지우는데 사용한다. --> <c:remove var="timer" scope="session"/> <!-- c:forEach object --> <!-- :지정된 범위 내에서 반복을 통해 flow를 제어하기 위한 core 태그이다. --> <c:forEach var="name" items="${expression}" [varStatus="name"] [begin="expression"] [end="expression"] [step="expression"]> body content </c:forEach> | cs |
속성 |
getter |
description |
current |
getCurrent() |
현재 반복 라운드 아이템 |
index |
getIndex() |
현재 반복 라운드의 제로 기반 인덱스 |
count |
getCount() |
현재 반복 라운드의 1 기반 인덱스 |
first |
isFirst() |
현재 라운드가 반복을 통한 첫번째 패스임을 나타내는 플래그 |
last |
isLast() |
현재 라운드가 반복을 통한 마지막 패스임을 나타내는 플래그 |
begin |
getBegin() |
begin 애트리뷰트의 값 |
end |
getEnd() |
end 애트리뷰트의 값 |
step |
getStep() |
step 애트리뷰트의 값 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <!-- 조건문 --> <c:if test="expression" [var="name"] [scope="scope"]> body content </c:if> <!-- if else 문 같은 역활 --> <c:choose> <c:when test="expression"> body content </c:when> ... <c:otherwise> body content </c:otherwise> </c:choose> | cs |
'입사후 공부한내용' 카테고리의 다른 글
2019-02-11(Java Script 비동기 처리와 콜백함수) (0) | 2019.02.11 |
---|---|
2018-12-18(JavaScript Hoisting 호이스팅) (0) | 2018.12.18 |
2018-09-17(리눅스의 퍼미션) (0) | 2018.09.17 |
2018-09-12(WS & WAS / Container) (0) | 2018.09.12 |
2018-09-11(동적인 웹페이지를 위한 CGI) (0) | 2018.09.11 |
Comments