EL (Expression Language)
EL이란 JSP에서 저장객체를 출력할때 스크립팅을 전혀 쓰지 않을 수 있는 기술입니다.
EL은 일종의 스크립트 언어로 자료 타입, 수치 연산자, 논리 연산자, 비교 연산자 등을 제공하며 표현식을 대체할 수 있습니다.
EL의 사용법
Ex)표현식 <%=value%> => EL $(value)
-EL 내부에 사용하는 연산자
1.산술: +,-,*,/,%
2.관계: ==,!=,<,<=,>,>=
3.조건: a?b:c (a조건식이 참이면 b를 실행, 거짓이면 c를 실행)
4.논리:&&,||
액션태그와 EL
-액션태그<jsp:getProperty name="member" property="name"/>
-EL -> ${member.name}
EL(내장객체.name)
내장객체 | 의미 |
1.pageScope | JSP의 page 객체를 참조하는 객체 |
2.requestScope | JSP의 requeset 객체를 참조하는 객체 |
3.sessionScope | JSP의 session 객체를 참조하는 객체 |
4.applicationScope | JSP의 application 객체를 참조하는 객체 |
5.param | 요청 파라미터를 참조하는 객체 |
6.paramValues | 요청 파라미터(배열)를 참조하는 객체 |
7.initParam | 서블릿컨테스트 초기화 파라미터를 참조하는 객체 |
8.cookie | 쿠키 객체를 참조하는 객체. |
JSTL (JSP Standard Tag Library)
-JSP의 경우 HTML태그와 같이 사용되어 전체적인 코드의 가독성이 떨어집니다.
-그래서 이런 단점을 보완하고 만들어진 것이 JSTL입니다.
-JSTL을 사용하면 자바의 제어문을 HTML 태그화 시킬 수 있습니다.
-JSTL의 경우 우리가 사용하는 Tomcat기본 컨테이너에 포함되어 있지 않으므로, 별도의 라이브러리를 설치하고 사용합니다.
-설치방법: http://jakarta.apache.org접속 속 -> (jstl.jar,standard.jar파일 설치된 톰켓의 lib파일 안으로 복사)
종류 | URI | prefix |
Core | http://java.sun.com/jsp/jstl/core | c |
XML processing | http://java.sun.com/jsp/jstl/xml | x |
Formatting | http://java.sun.com/jsp/jstl/fmt | fmt |
Database access | http://java.sun.com/jsp/jstl/sql | sql |
Functiona | http://java.sun.com/jsp/jstl/functions | fn |
JSTL Core Library 사용 방법
-Core 라이브러리는 기본적인 라이브러리로 출력, 제어문,반복문 같은 기능이 포함되어 있습니다.
-코어 라이브러리를 사용하기 위해서 반드시 JSP 파일 내의 지시자 태그로
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" perfix="c"%>
1.출력 태그
<c: out value=<출력값">
2.변수 선언 태그
-변수 태그는 JSTL이 지원하는 태그에서 사용할 수 있는 변수를 설정하기 위해 사용합니다. EL 변수를 생성합니다.
<c: set var="변수명" value="설정값" scope="범위">
var: 값을 저장할 EL변수의 이름을 지정함.
value: 변수의 값을 지정함. 표현식, EL 텍스트를 사용하여 지정가능.
scope: 변수를 저장할 영역을 지정함. page, request, session, application 중 하나를 지정해야 하며 지정하지 않을 경우 page를 기본값으로 사용.
3.변수 제거 태그
-remove 태그를 사용할 때 주의점은 삭제할 변수의 scope을 지정하지 않으면 동일한 이름으로 저정된 모든 영역의 변수를 삭제합니다.
<c:remove var="변수명" scope="범위">
4. 조건문(if)태그
-if태그는 자바 언어의 if블록과 비슷한 기능을 제공합니다. 중첩된 if~else 문과 같은 효과를 낼 수는 없지만 단순한 if블록을 쉽게 대체할 수 있기 때문에 많이 사용하빈다.
<c:if test="조건삭" var="조건 처리 변수명">
5.조건문(choose)태그
-choose 태그는 자바의 swtich 구문과 if~else 문과 같은 효과를 낼 수는 없지만 단순한 if블록을 쉽게 대체할 수 있기 때문에 많이 사용합니다.
<c:choose>
<c:when test="조건삭">처리내용</c:when>
<c:when test="조건삭">처리내용</c:when>
<c:otherwise>처리 내용</c:otherwise>
</c:choose>
6.반복문 태그
<c:forEach items="객체명" begin="시작값" end="끝 값" step="증감삭" var="변수명">
-forEach 태그는 배열, 컬렉션 또는 맵에 저장되어 있는 값들을 순차적으로 처리할 때 사용합니다.
-배열의 경우는 객체의 배열뿐만 아니라 기본 테이터 타입의 배열도 알맞게 처리를 하며 기본 데이트 타입은 래퍼 클래스를 통해 처리합니다.