2022_12_02 EL(Expression Language)
표현식을 대체하는 기능들
el_form에서 보낸값을 출력하는 페이지
el_form_ok로 값을 보내는 페이지
밑에 있는 예시
sessionScope & ApplicationScope를 사용해봄
EL 이란 JSP에서 저장객체를 출력할 때 스크립팅을 전혀 쓰지 않을 수 있는 기술이다
EL은 표현식을 대체할 수 있다
- EL 내부에 사용하는 연산자
1. 산술: +, -, *, /, %
2. 관계: ==, !=, <, <=, >, >=
3. 조건: a ? b : c (a조건식이 참이면 b를 실행, 거짓이면 c를 실행)
4. 논리: &&, ||
java에서쓰는 || 혹은 && 를 사용할 수 있지만
EL:에서만 사용할 수 있는 or 혹은 and를 쓰는게 더 직관적이다.
${1 < 2 || 1 > 2 }<br>
${1 < 2 or 1 > 2 }<br>
${1 < 2 && 1 > 2 }<br>
${1 < 2 and 1 > 2 }<br>
반대의 의미에 ! 대신 not을 넣어도 사용가능하다.
${ ! false }<br>
${ not false }<br>
관계 연산자 중 ==는 eq로 대체할 수 있다
${ '홍길동' == '홍길동' }<br>
${ '홍길동' eq '홍길동' }<br>
관계연산자에
< , lt 로 바꿀 수 있음 (little than)
<= , le 로 바꿀 수 있음 (little or equals)
> , gt 로 바꿀 수 있음 (greater than)
>= , ge 로 바꿀 수 있음 (greater than)
이런 EL태그용 기능들이 있지만 선호하진 않는다 ( 더 헷갈리기 때문 )
EL의 내장객체
${ 내장객체.NAME}
requestScope.은 생략을 하고 많이 사용함
우선순위가 request -> session -> application 순으로 이루어져 있음
session과 application은 request와 이름이 동일할경우 잘못실행될 수 가 있기때문에
sessionScope.이나 applicationScope를 ${}안에서 붙혀야한다
<%@page import="com.example.bean.User"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
User vo = new User();
vo.setId("hhh123");
vo.setName("홍길숙");
vo.setEmail("hhh@naver.com");
request.setAttribute("voo", vo); //리퀘스트에 강제 저장
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
아이디 : ${ requestScope.voo.id }<br>
이름 : ${ requestScope.voo.name }<br>
이메일 : ${ requestScope.voo.email }<br>
<hr/>
<!-- requestScope.은 생략을 하고 많이 사용함
사용되는 순서 = request -> session -> application -->
아이디 : ${ voo.id }<br>
이름 : ${ voo.name }<br>
이메일 : ${ voo.email }<br>
</body>
</html>