일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- riceteacatpanda
- frontend
- Layered Architecture
- 정보보호병 후기
- 행정지역 DB
- 소프트웨어 개발보안 경진대회
- PyAmdecoder
- jsp
- SessionAttribute
- Django
- Database
- 방명록 만들기
- 메모리 포랜식
- react
- 네이버 인턴
- spring
- 인턴 지원
- JSTL
- 소개딩
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- mysql
- 인턴 후기
- restapi
- reversing.kr
- 3단계 지역 DB
- 동읍면 DB
- DBMS
- webhacking 처음
- Forensic 절차
- EER
- Today
- Total
웹찢남
Spring - EL (Expression Language) 본문
EL (Expression Language) - 값을 표현하는데 사용되는 스크립트 언어로서 JSP의 기본 문법을 보완
- JSP의 스코프에 맞는 속성 사용
- 집합 객체에 대한 접근 방법 제공
- 수치 연산, 관계 연산, 논리 연산자 제공
- 자바 클래스 메소드 호출 기능 제공
- 표현 언어(EL)만의 기본 객체 제공
- ${expr}로 사용 expr: EL이 정의한 문법에 따라 값을 표현하는 식
객체 접근 규칙
- ${<표현1>.<표현2>}
- 표현 1이나 표현 2가 null이면 null 반환
- 표현 1이 Map일 경우 표현 2를 key로한 값을 반환
- 표현 1이 List나 배열이면 표현 2가 정수일 경우 해당 정수번째 index에 해당하는 값 반환
- 만약 정수가 아닐 경우 오류 발생
- 표현 1이 객체일 경우 표현 2에 해당하는 getter 메소드에 해당하는 메소드를 호출한 결과를 반환
표현 언어의 수치 연산자
+, -, *, /, div, %, mod 와 같은 연산자 사용 가능
- 숫자가 아닌 객체와 수치 연산자를 사용할 경우 객체를 숫자 값으로 변환 후 연산자 수행
- 숫자를 변환할 수 없는 객체와 수치 연산자를 함께 사용하면 에러 발생
- 수치 연산자에서 사용되는 객체가 null이면 0 으로 처리
- Ex) ${10+1} = ${"10"+1}
비교 연산자
==,eq, !=,ne, <,lt ,>,gt, <=,le, >=,ge
문자열 비교: ${str=='값'} 은 str.compareTo('값') == 0 과 동일
논리 연산자
&&, and, ||, or, !, not
empty<값> -> 값이 null,"",길이가 0, 빈 Map, 빈 Collection이면 true 리턴 나머지는 false
<수식> ? <값1> : <값2> -> 수식의 결과값이 true이면 <값1>을 리턴하고 false면 <값2>를 리턴
EL 비활성화 - 서블릿 2.4 부터는 기본적으로 EL 적용
<%@ page isELIgnored = "true" %>
EL 사용법1 (Scope)
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<!DOCTYPE html>
<%
pageContext.setAttribute("p1","page scope value");
request.setAttribute("r1","request scope value");
session.setAttribute("s1","session scope value");
application.setAttribute("a1","application scope value");
%>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
pageContext.getAttribute("p1") : ${pageScope.p1 }<br>
request.getAttribute("r1") : ${requestScope.r1 }<br>
session.getAttribute("s1") : ${sessionScope.s1 }<br>
application.getAttribute("a1") : ${applicationScope.a1 }<br>
<br><br>
pageContext.getAttribute("p1") : ${p1 }<br>
request.getAttribute("r1") : ${r1 }<br>
session.getAttribute("s1") : ${s1 }<br>
application.getAttribute("a1") : ${a1 }<br>
</body>
</html>
EL 사용법2 (사칙 연산)
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%>
<%
request.setAttribute("k", 10);
request.setAttribute("m", true);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="EUC-KR">
<title>Insert title here</title>
</head>
<body>
k : ${k } <br>
k + 5 : ${ k + 5 } <br>
k - 5 : ${ k - 5 } <br>
k * 5 : ${ k * 5 } <br>
k / 5 : ${ k div 5 } <br>
k : ${k }<br>
m : ${m }<br>
k > 5 : ${ k > 5 } <br>
k < 5 : ${ k < 5 } <br>
k <= 10 : ${ k <= 10} <br>
k >= 10 : ${ k >= 10 } <br>
m : ${ m } <br>
!m : ${ !m } <br>
</body>
</html>
'BACK_END > Spring 공부' 카테고리의 다른 글
Spring - Spring Core (0) | 2021.02.13 |
---|---|
Spring - JSTL (0) | 2021.02.03 |
Spring - Scope (0) | 2021.02.02 |
Spring - JSP (0) | 2021.02.01 |
Spring - Servlet 생명 주기 (0) | 2021.02.01 |