Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- HashSet
- 보이어무어
- 완전 탐색
- 메뉴리뉴얼
- 후위 표기법
- Java
- 조합
- 프로그래머스
- 튜플
- Stack
- 규칙찾기
- 완전탐색
- pandas
- 동적계획법
- 에라토스테네스의 체
- dfs
- 순열
- python
- 문자열
- 알고리즘
- 점프와 순간이동
- 반복문
- 2017 카카오 코드
- fragment identifier
- Dynamic Programming
- 영문자 확인
- HashMap
- 최소공배수
- 어려웠던 문제
- 쿼드압축 후 개수세기
Archives
- Today
- Total
csmoon1010의 SW 블로그
JSP의 JSTL & EL - (부스트코스) 본문
1. EL(Expression Language, 표현 언어)
값을 표현하는 데 사용되는 스크립트 언어 (JSP의 기본 문법 보완 - Java 코드의 간단화 for 협업)
1) 기능
- JSP의 스코프(scope)에 맞는 속성 사용 - Page, Request, Session, Application
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메소드 호출 기능 제공
- 표현언어만의 기본 객체 제공
2) 기본 객체
3) 표현 방법
(1) 기본 표현
- ${expr}
- 스크립트 요소(스크립트릿, 표현식, 선언부)를 제외한 나머지 부분에서 사용 가능
- ex. <b>${sessionScope.member.id}</b>님 환영합니다.
(2) 객체 접근
- ${<표현1>.<표현2>}
- 표현 1이나 표현 2가 null 인 경우 : null을 반환
- 표현1이 Map일 경우 : 표현2를 key로한 값을 반환
- 표현1이 List나 배열인 경우
- 표현2가 정수 : 해당 정수 번째 index에 해당하는 값을 반환
- 표현2가 정수X : 오류 발생
- 표현1이 객체인 경우 : 표현2에 해당하는 getter메소드를 호출한 결과를 반환
4) 연산자
(1) 수치 연산자
- + : 덧셈
- - : 뺄셈
- * : 곱셈
- / 또는 div : 나눗셈
- % 또는 mod : 나머지
- 숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자를 수행 : ${"10"+1} → ${10+1}
- 숫자로 변환할 수 없는 객체와 수치 연산자를 함께 사용하면 에러를 발생 : ${"열"+1} → 에러
- 수치 연산자에서 사용되는 객체가 null이면 0으로 처리 : ${null + 1} → ${0+1}
(2) 비교 연산자
- == 또는 eq
- != 또는 ne
- < 또는 lt
- > 또는 gt
- <= 또는 le
- >= 또는 ge
- 문자열 비교: ${str == '값'} -- str.compareTo("값") == 0 과 동일
(3) empty 연산자
- empty <값>
- <값>이 null인 경우 : true 반환
- <값>이 ""인 경우 : true 반환
- <값>이 길이가 0인 배열인 경우 : true 반환
- <값>이 빈 Map인 경우 : true 반환
- <값>이 빈 Collection인 경우 : true 반환
- 그 외 : false 반환
(4) 비교 선택 연산자
- <수식> ? <값1> : <값2>
- <수식>의 결과값이 true인 경우 : <값1> 반환
- <수식>의 결과값이 false인 경우 : <값2> 반환
(5) 연산자 우선순위
① [] .
② ()
③ 부정, null 처리 : - not ! empty
④ 수치 연산 : * / div % mod
⑤ 수치 연산 : + -
⑥ 비교 연산 : < > <= >= lt gt le ge
⑦ 비교 연산 : == != eq ne
⑧ 논리 연산 : && and
⑨ 논리 연산 : || or
⑩ 비교 선택 여산 : ? :
5) ESTL 비활성화
<%@ page isELIgnored = "true" %>
- default는 "false"값
2. JSTL(JSP Standard Tag Library)
JSP 페이지에서 조건문 처리, 반복문 처리 등(로직)을 html tag 형태로 작성할 수 있게 도와주는 라이브러리
- 유지보수의 용이함 : 프론트 개발자의 편의
- JSP의 목적이 "결과를 출력만한다"이므로 적절한 선택
1) 사용 방법
http://tomcat.apache.org/download-taglibs.cgi
위 사이트에서 3가지 jar 파일 다운로드 후 복사
2) 태그 종류
(1) 변수 지원 - set, remove
- 설정 : <c:set var="EL변수명" scope="변수값 저장 영역(page,request,session,application) value="변수값"/>
- <c:set var="varName" scope="session" value="someValue"/>
- <c:set var="varName" scope="session">someValue</c:set>
- 제거 : <c:set var="EL변수명" scope="변수값 저장 영역(page,request,session,application) value="변수값"/>
- <c:remove var="varName" scope="request"/>
- 프로퍼티 설정 : <c:set target="${변수객체명}" property="프로퍼티 이름" value="새로 지정할 값"/>
- <c:set target="${some}" property="propertyName" value="anyValue"/>
- some객체가 자바빈 : some.setPropertyName(anyvalue) ____ property의 첫 문자가 대문자로 바꿔 setter 형성하는 규칙有
- some객체가 맵(map) : some.put(propertyName, anyValue);
(2) 흐름제어 태그 - if, choose, forEach, import, redirect
- if : <c:if test="조건">
- test의 조건이 true이면 처리. else는 제공하지 않음
- <c:if test="${param.name=='bk'}"> 수행문 </c:if>
- "조건"은 EL표기법을 활용해 나타냄 __ ${expr}
- choose : <c:choose> <c:when test="조건">...</c:when>...<c:otherwhise>...</c:otherwise> </c:choose>
- 여러 개의 조건 처리
- "조건"은 EL표기법을 활용
<c:choose>
<c:when test="${score >= 90 }">
A학점입니다.
</c:when>
<c:when test="${score >= 80 }">
B학점입니다.
</c:when>
<c:when test="${score >= 70 }">
C학점입니다.
</c:when>
<c:otherwise>
D학점입니다.
</c:otherwise>
</c:choose>
- forEach : <c:forEach var="변수" items="아이템" [begin="시작번호] [end="끝번호"]> "수행문" </c:forEach>
- "items" : 배열 및 Collection에 저장된 요소를 차례대로 처리
- "수행문"은 EL표기법 ${변수}를 활용
- begin, end는 생략 가능 (처음부터 끝까지)
- import : <c:import url="URL" charEncoding="캐릭터인코딩" var="변수명" scope="범위"> <c:param name="파라미터이름" value="파라미터값"/> </c:import>
- 특정 URL에 연결하여 결과를 지정한 변수에 저장
- url : 결과를 읽어올 URL
- charEncoding : 읽어온 결과의 인코딩 형식
- scope : 변수 저장 영역
- <c:param> : URL에 연결할 때 전송할 파라미터 입력
- redirect : <c:redirect url="URL"> <c:param name="파라미터이름" value="파라미터값"/> </c:redirect>
- 특정 URL로 리다이렉트 = response.sendRedirect()
- <c:param> : 리다이렉트한 페이지에 전달할 파라미터
<c:redirect url="/ifTag.jsp">
<c:param name="name" value="bk"/>
</c:redirect>
(3) 기타태그 - out
- out : <c:out value="value" escapeXml="{true|false}" default="defaultValue" />
- JspWriter에 데이터를 출력함
- value : 출력할 값. 대부분의 경우 String 활용. 만약 java.io.Reader의 한 종류라면 Reader에서 데이터를 읽어옴
- escapeXml : true인 경우 문자 변환 (태그로 인식X)
< (<) > (>) & (&) ' (') " (") - default : value 속성에서 지정한 값이 존재하지 않는 경우
- ++ 커스텀 태그
'웹 > 백엔드' 카테고리의 다른 글
JDBC - (부스트코스) (0) | 2021.04.08 |
---|---|
Maven - (부스트코스) (0) | 2021.04.08 |
JSP의 Scope - (부스트코스) (0) | 2021.03.30 |
JSP의 redirect & forward - (부스트코스) (0) | 2021.03.23 |
JSP의 기초 - (부스트코스) (0) | 2021.03.13 |
Comments