EL (Expression Language)
표현 언어를 이해하고 속성 값들을 편리하게 출력하기 위해 제공
배열이나 컬렉션, JavaBean의 프로퍼티에 사용
<%= 출력변수 =>를 ${출력변수}로 쉽게 사용가능
값을 찾을 때 Attribute는 작은 Scope에서 큰 Scope로 탐색
JSP, JSTL: pageContext->request->session->application
EL: pageScope->requestScope->sessionScope->applicationScope
*공유영역에 변수명이 중복되어 있다면 위의 순서로 탐색
특정영역의 값을 가져오려면 requestScope.name으로 값을 가져옴
param
파라미터 매핑 객체, request.getParameter("id")
paramValues
파라미터 매핑 객체, request.getParameterValues("id")
EL Attribute Method
page, request
setAttribute("key값", value): 값 추가
getAttribute("key값"): 값 흭득
removeAttribute("key값"): 값 삭제
session
invalidate() 추가: 모든 값 삭제
객체 표현 이해
${객체.이름}
객체 자리에 올 수 있는 타입 2가지
자바빈즈 클래스
Board b = new Board();
pageContext.setAttribute("board", b);
${baord.no}
맵 객체
Map b = new HashMap();
b.put("no", "111");
b.put("title", "EL");
pageContext.setAttribute("board", b);
${board.no}
${객체[이름]}
객체 자리에 올 수 있는 타입 4가지
자바빈즈 클래스
맵 객체
배열
String[] names = {"일루아"};
pageContext.setAttribute("names", names);
${names[0]}
컬렉션
List nameList = new ArrayList();
names.add("일루아");
pageContext.setAttribue("names", nameList);
${names[0]}
JSTL (Jsp Standard Tag Library)
연산이나 조건문, 반복문, DB 작업을 편하게 처리하기 위해 제공
표준 액션태그로 처리하기 힘든 부분을 처리하기 위해 제공
WEB-INF/lib 경로에 jstl.jar와 taglibs-standard.jar 파일을
아파치 톰켓 (http://tomcat.apache.org/download-taglibs.cgi)에서 다운로드하여 추가
태그종류
prefix:c (core)
실행 흐름 제어, 페이지 이동
prefix:fmt (formatting)
숫자, 날짜, 시간, 국제화, 다국어 지원
prefix:sql (database)
DB 입력, 수정, 삭제, 조회
prefix:x (xml)
xml문서 처리에 필요한 기능
prefix:fn (function)
문자열 제공
태그선언
<%@taglib prefix="태그종류" uri="태그uri"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
*x: xml / fmt: 국제화 / sql: 데이터베이스 / fn: 함수
Core 태그사용
<c:set>
<c:set var="설정할 변수명" value="값" [scope="page"]/>
: [scope영역]변수 값 할당 (기본설정 page / request / session / application)
<c:out>
<c:out value="${msg}" [escapeXml="true/false"] [default="값 없음"]/>
: hi~! 출력
escapeXml이 true일 경우 출력내용에 태그가 있을 경우 문자값으로 변경
<c:remove>
else문이 없고 scope 생략할 경우 page영역 지정 (모든 영역 삭제)
<c:remove var="num" scope="영역"/>
: 영역의 num 변수 삭제 (영역 생략할 경우 모든 영역의 변수 삭제)
<c:set var="msg" value="일루아">
<c:if>
<c:if var="result" test="${msg=='일루아'}">
test result = ${result} <br/>
</c:if>
<c:choose>
다중 조건 처리
<c:choose>
<c:when test="${param.val=='a'}">
selected 'a' <br/>
</c:when>
<c:otherwise>
<c:set var="result" value="false"/>
</c:otherwise>
</c:choose>
<c:forEach>
배열 또는 컬렉션 객체를 반복할 경우
<c:forEach var="값을 담을 변수" items="반복대상" [varStatus="기본정보"]>
*기본정보
first: 반복문의 처음인지 판단
last: 반복문의 마지막인지 판단
index: 반복의 처음에 0을 반환, 반복이 진행될때마다 1씩 증가
count: 반복의 처음에 1을 반환, 반복이 진행될때마다 1씩 증가
</c:forEach>
<c:forEach var="s" items="${array}">
${s}
</c:forEach>
지정된 회수 만큼 반복할 경우
<c:forEach var="변수명" begin="반복문 시작 값 설정" end="마지막 값 설정">
</c:forEach>
for(int i=1; i<=10; i++){
System.out.println(i);
}
<c:forEach var="i" begin="1" end="10">
${i}
</c:forEach>
<c:forTokens>
자바의 StringTokenizer와 동일한 역할 수행
<c:forTokens var="변수명" items="문자열" delims="구분자">
${token}
</c:forTokens>
fn 자주 사용되는 함수
fn:length(obj): list인 경우 값의 개수, 문자열인 경우 문자열의 길이 반환
fn:substring(str, idx1, idx2): idx1 ~ (idx2-1) 사이의 문자열 반환
fn:trim(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
fn:ontains(str1, str2): str1이 str2를 포함하고 있을 경우 true
'학습 log (이론) > web' 카테고리의 다른 글
'Spring' AOP (0) | 2017.07.06 |
---|---|
'Spring' IOC와 DI (0) | 2017.07.04 |
'AJAX' (0) | 2017.06.27 |
'JSP' (0) | 2017.06.22 |
'Servlet' (0) | 2017.06.09 |