-
[Web:] 자바 표현언어 EL(Expression Language)비전공자 공부일기/:: WEB & Front-End 2019. 8. 19. 11:23
EL은 JSP 문서로 된 뷰 페이지에서만 쓰는 "출력 전용 언어"라고 보면 된다.
Spring을 할 때도 사용하기 때문에 꼭 알고있어야 한다!
무조건 객체가 공유되어야 사용할 수 있음
${ 공유속성명 } 또는 ${ 객체명.필드명 } 또는 ${ 공유속성명.맵키 } 형식으로 작성
>> 자동으로 getAttribute() 메소드가 호출되어 공유 인스턴스를 출력
${공유속성명.맵키} 형식으로 공유 인스턴스(Map)의 값을 반환받아 출력
==> getAttribute() 메소드와 get() 메소드가 자동 호출만약 공유 인스턴스가 존재하지 않을 경우 JS는 null을 출력하지만, EL은 아무것도 출력하지 않는다.
>> NullpointException이 절대 발생하지 않음
객체(클래스의 인스턴스)가 갖고 있는 필드값을 가져오기 위해서는 점 연산자(.) 활용
car라는 이름으로 공유된 인스턴스가 값을 저장하는 게 아니라 점 연산자를 이용해 필드값을 출력하도록
포워드 이동을 할 시에
EL을 사용하지 않으면 getter() 메소드를 이용해 <%=>
EL을 사용하면 ${ 객체.객체.필드명 } 형식으로 이용 가능
그런대 대괄호 [ ] 를 써야 할 때가 있다. Array 또는 List를 쓸 때
EL 내장객체 - Scope Attribute
- 공유 인스턴스(page scope) = ${pageName}
- 공유 인스턴스(request scope) = ${requestName}
- 공유 인스턴스(session scope) = ${sessionName}
- 공유 인스턴스(application scope) = ${applicationName}EL 표현식에서 공유 속성명을 사용할 경우 공유 인스턴스를 순차적으로 검색하여 출력
검색순서 : page >> request >> session >> applicationEL 표현식에서 내장객체를 이용하여 공유 범위에 대한 명식적으로 표현하여 공유 인스턴스를 출력
=> pageScope, requestScope, sessionScope, pageScope<%@page import="java.util.ArrayList"%> <%@page import="java.util.List"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <% request.setAttribute("first", 20); request.setAttribute("second", 10); request.setAttribute("num", 15); Object object=null; request.setAttribute("object", object); String string=""; request.setAttribute("string", string); String[] array={}; /* empty array : 비어있는 배열 ** 자바는 []를 쓰지만 여기선 {} */ request.setAttribute("array", array); List<String> list = new ArrayList<String>(); %> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>EL 연산자 - 산술연산자, 관계연산자, 조건연산자</h1> <ul> <!-- 산술연산자 --> <li>first = ${first }</li> <li>second = ${second }</li> <li>first * second = ${first * second }</li> <li>first / second = ${first / second }</li><!-- 결과가 정수가 아닌 실수로 출력됨 --> <li>first div second = ${first div second }</li><!-- 나누기는 div라는 연산자 키워드로도 표현 가능 --> <li>first % second = ${first % second }</li> <li>first mod second = ${first mod second }</li><!-- 퍼센티지는 mod라는 연산자 키워드로도 표현 가능 --> <li>first + second = ${first + second }</li> <li>first - second = ${first - second }</li> <!-- 관계연산자 ** boolean 값 반환 --> <li>first > second = ${first > second }</li> <li>first gt second = ${first gt second }</li> <li>first < second = ${first < second }</li> <li>first lt second = ${first lt second }</li> <li>first >= second = ${first >= second }</li> <li>first ge second = ${first ge second }</li> <li>first <= second = ${first <= second }</li> <li>first le second = ${first le second }</li> <li>first == second = ${first == second }</li> <li>first eq second = ${first eq second }</li> <li>first != second = ${first != second }</li> <li>first ne second = ${first ne second }</li> <!-- 조건연산자 --> <li>num = ${num }</li> <li>first > num && second < num = ${first > num && second < num} </li> <li>first > num && second < num = ${first > num && second < num} </li> <li>first < num || second > num = ${first < num || second > num} </li> <!-- empty 연산자 : 공유 인스턴스가 없거나 비어있는 경우 true 제공하는 연산자 --> <li>object Empty = ${empty(object) }</li> <li>string Empty = ${empty(string) }</li> <li>array Empty = ${empty(array) }</li> <li>list Empty = ${empty(list) }</li> </ul> </body> </html>
참고한 글
- https://kutar37.tistory.com/41
'비전공자 공부일기 > :: WEB & Front-End' 카테고리의 다른 글
[WEB:] JSTL (0) 2019.08.19 [WEB:] 커스텀 태그 (0) 2019.08.19 [WEB:Model2] 컨트롤러 만들기2 (0) 2019.08.13 [WEB:Model2] Model2를 만들 때 알아두어야 할&주의사항 (0) 2019.08.13 [WEB:Model2] 컨트롤러 만들기 (6) 2019.08.12