EL (Expression Language)


EL (Expression Language)의 정의

  • 기존 JSP의 표현식을 더 간단하게 작성하기 위한 문법

JSP 문법

  • 선언부 <%! %>
  • 스크립트릿 <% %>
  • 표현식 <%= %>
  • 주석 <%-- --%>

EL 문법

  • <%=name%> --> ${name}
  • JSP의 내장객체는 out, page, session, request, response 이 있다.
  • EL의 내장객체는 pageScope, sessionScope, requestScope, responseScope 이 있다.

EL의 연산자

  • .: 빈 접근 연산자
  • []: 배열 / 컬렉션 접근 연산자
  • (): 우선순위
  • x ? a : b : 삼항 연산자
  • empty: 값이 null일 경우에 true
  • +, -, *, /, %: 산술 연산자
  • &&, ||, !: 논리 연산자
  • ==, !=, >, <, >=, <=: 비교 연산자

JSTL


  • 정식 명칭은 자바서버 페이지 표준 태그 라이브러리 (JavaServer Pages Standard Tag Library) 이다.
  • JSP 페이지에서 일반적인 핵심 기능을 캡슐화하여 제공되는 JSP 태그의 컬렉션이다.
  • JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다.
    • 표준화된 태그 셋을 사용하여 자바 코드가 들락거리는 것보다 더 코드의 유지보수와 응용 소프트웨어 코드와 사용자 인터페이스 간의 관심사의 분리로 이어지게 한다.
  • JSTL은 일반적인 반복 및 조건, 포매팅 작업, SQL 태그 조작을 위한 태그에 대한 지원을 한다.

표준 태그 라이브러리

Core

  • 가장 자주 사용되는 jstl 태그
  • 일반적인 프로그래밍에서 사용되는 기능 제공
  • 프로그래밍에서 기본적으로 필요한 변수 선언, 제어문, 일반적인 로직 등의 기능 제공
  • Core 태그 사용하기 위해서 taglib 지시자 선언해야 함
  • Core태그 종류
    • <c:out>
      • <%= ... %> 표현식과 동일하게 JSP 페이지에 출력되는 태그
    • <c:set>
      • page,request,session,application 4개 영역의 jsp저장소에 변수를 선언하는 태그
    • <c:remove>
      • page,request,session,application 4개 영역의 jsp저장소에 변수를 제거하는 태그
    • <c:if>
      • if문과 같은 기능을 하는 조건 선언 태그
    • <c:choose>, <c:when>, <c:otherwise>
      • 다중 조건을 사용하기 위한 태그
      • <c:choose> 태그 안에 여러 조건을 위해 <c:when>태그가 여러번 사용 가능
      • <c:when>조건에 포함되지 않은 조건들은 <c:otherwise>태그를 사용하여 선언
    • <c:foreach>
      • 배열이나 Collection 객체의 요소를 사용하기 위해 제공되는 태그
    • <c:forTokens>
      • StringTokenizer 클래스의 기능처럼 문자열에 구분자를 제거하고 요소를 사용하기 위해 제공되는 태그
    • <c:import>
      • include지시자와 같이 다른 페이지의 내용을 포함하기 위한 태그
      • page 지시자의 import와 다르다!
    • <c:url>
      • 지정한 url링크의 기능을 제공하는 태그
    • <c:param>
      • <c:import>와 <c:url>에서 매개변수를 선언하는 태그
    • <c:redirect>
      • query를 포함한 지정한 url로 웹페이지가 전환되는 태그
    • <c:catch>
      • try..catch와 같이 예외처리를 하기 위한 태그

Formatting

  • 국제화된 웹 사이트에 대한 날짜, 시간 및 숫자 텍스트를 포맷하고 표시하는데 사용되는 기능 제공
  • 날짜,시간,숫자,텍스트 포맷,국제화에 따른 언어 설정 기능 제공
  • Formatting 태그 사용하기 위해서 taglib 지시자 선언해야 함
  • Formatting 태그 종류
    • fmt:requestEncoding
      • 요청 문자 인코딩 설정 태그
    • fmt:setLocale
      • 사용하고자 하는 국가,지역 및 언어 설정 태그
    • fmt:formatNumber
      • 숫자를 원하는 문자열 형식으로 변환시키는 태그
    • fmt:parseNumber
      • 문자열을 원하는 숫자 형식으로 변환시키는 태그
    • fmt:formatDate
      • 날짜 및 시간을 원하는 형식으로 출력시키는 태그
    • fmt:parseDate
      • 문자열을 원하는 날짜 및 시간 형식으로 출력시키는 태그
    • fmt:timeZone, fmt:SetTimeZone
      • 원하는 시간대 설정 변수의 타임존 설정을 위한 태그
      • TimeZone태그는 태그를 열고 닫는 영역에서만 사용
    • fmt:bundle
      • 태그 안에서 사용할 bundle값 지정
    • fmt:setBundle
      • 사용할 bundle값 지정
    • fmt:message
      • 지정된 message값 반환

SQL

테이블 생성 

CREATE TABLE MEMBER (
    ID LONG AUTO_INCREMENT NOT NULL,    -- 아이디 (기본키)
    NAME VARCHAR(255),                  -- 이름
    AGE INTEGER NOT NULL,               -- 나이
    PRIMARY KEY (ID)
);
데이터 입력

INSERT INTO MEMBER(NAME, AGE) VALUES('sally', 30);
INSERT INTO MEMBER(NAME, AGE) VALUES('john', 20);
INSERT INTO MEMBER(NAME, AGE) VALUES('philip', 40);
  • 관계형 DB (RDBMS)와 상호 작용하는 태그 제공
  • 사용법
  • SQL 태그 종류
    • sql:setDataSource
      • DB 서버 연결 리소스 지정
    • sql:query
      • 태그 안에 지정된 SQL query 실행
    • sql:update
      • 태그 안에 지정된 SQL update 실행
    • sql:param
      • 지정된 값으로 SQL문에서 매개변수 설정
    • sql:dateParam
      • 지정된 java.util.Date의 값으로 SQL문에서 매개변수 설정
    • sql:transaction
      • 트랜잭션 모든 명령문 실행

XML

  • XML 문서를 새성하고 조작하는 방법 제공

Function

  • 일반적인 문자열을 가공하고 조작하기 위한 표준함수 제공
  • 사용법
  • Function 태그 종류
    • fn:length(obj)
      • obj가 문자열이면 길이 리턴, List나 Collection이면 현재 항목 개수 반환
    • fn:substring(str, i, j)
      • str 문자열에서 i에서 j-1 까지 문자열 리턴
    • fn:substringAfter(str1, str2)
      • str1 문자열에서 str2 문자열 이후 문자열 리턴
    • fn:substringBefore(str1, str2)
      • str1 문자열에서 str2 문자열 이전 문자열 리턴
    • fn:toUpperCase(str)
      • str 문자열을 대문자로 리턴
    • fn:toLowerCase(str)
      • str 문자열을 소문자로 리턴
    • fn:replace(str, src, dest)
      • str 문자열에 있는 src 문자열을 dest로 변경한 문자열 리턴
    • fn:indexOf(str1, str2)
      • str1 문자열에 str2로 시작된 문자열 리턴
    • fn:startsWith(str1, str2)
      • str1 문자열이 str2로 시작되면 참 (true), 아니면 거짓 (false)
    • fn:endsWith(str1, str2)
      • str1 문자열이 str2로 끝나면 참 (true), 아니면 거짓 (false)
    • fn:contains(str1, str2)
      • str1에 str2 문자열 포함되어있으면 참 (true), 아니면 거짓 (false)
    • fn:containsIgnoreCase(str1, str2)
      • str1에 str2 문자열 포함되어있으면 참 (true), 아니면 거짓 (false)
      • 대소문자 무시
    • fn:trim(str)
      • str에서 양쪽 여백 제거
    • fn:join(arr, str2)
      • arr 배열의 각 요소 중간에 str2 문자열이 들어간 문자열 리턴
    • fn:escpaeXml(str)
      • xml 마크업으로서 해석될 수 있는 문자를 이스케이프로 리턴

profile
github : https://github.com/kiaeh2323 , email : kiaeh9269@gmail.com

0개의 댓글