EL(Expression Language)
1.EL(Expression Language)
: EL(Expression Language)은 콤마(.)와 대괄호([])를 사용하여 자바 빈의 프로퍼티나 맵, 리스트, 배열의 값을 보다 쉽게 꺼내주는 기술이다. JSP에서는 주로 보관소에 들어있는 값을 꺼낼 때 사용한다. JSP에서 쓰던 <%=값%>을 안쓰고 ${값}을 사용해 간단히 표현하기위해 쓴다.
1.2 EL표기법
:EL은 ${}와 #{}를 사용하여 값을 표현한다. ${}을 ‘즉시 적용(immediate evaluation)’이라 부르고 #{}을 ‘지연 적용(deferred evaluation)’이라 부른다. ${}은 객체 프로퍼티 값을 ‘꺼낼 때’, #{}은 객체 프로퍼티 값을 ‘담을 때’ 사용한다.
1.3 리터럴 표현식
EL 블록에서 사용할 수 있는 값은 문자열, 정수, 부동소수점, 참거짓(Boolean), 널(Null)이 가능하다.
EL표현식
- 문자열: ${“test”}
- 문자열: ${‘test’}
- 정수: ${20}
- 부동소수점: ${3.14}
- 참거짓: ${true}
- null: ${null}
실행 결과값
- 문자열: test
- 문자열: test
- 정수: 20
- 부동소수점: 3.14
- 참거짓: true
- null :
1.4 값 표현식
1.4.1 배열에서 값 꺼내기
EL 표현식
<% // 값 준비
pageContext.setAttribute("scores", new int[] {90, 80, 70, 100});
%>
<%-- 배열에서 인덱스 2의 값 꺼내기 --%>
${scores[2]
실행결과
70
1.4.2 List 객체에서 값 꺼내기
EL 표현식
<% //값준비
List<String> nameList = new LinkedList<String>();
nameList.add("홍길동");
nameList.add("임꺽정");
nameList.add("일지매");
pageContext.setAttribute("nameList", nameList);
%>
<%-- 리스트 객체에서 인덱스 1 값 꺼내기--%>
${nameList[1]}
실행결과
임꺽정
1.4.3 Map 객체에서 값 꺼내기
EL 표현식
<% // 값 준비
Map<String, String> map = new HashMap<String,String>();
map.put("s01", "홍길동")
map.put("s02", "임꺽정")
map.put("s03", "일지매")
pageContext.setAttribute("map", map);
%>
<%-- 맵 객체에서 키 s02로 저장된 값 꺼내기 --%>
${map.s02}
실행결과
임꺽정
1.4.4 자바 객체에서 프로퍼티 값 꺼내기
EL 표현식
<% // 값 준비
pageContext.setAttribute("member", new Member().setNo(100).setName("홍길동").setEmail("hong@test.com"));
%>
<%-- 자바빈에서 프로퍼티 email의 값 꺼내기 --%>
${member.email}
실행결과
hong@test.com
1.5 JSP에서 제공하는 EL 기본객체
출처
- MVC아케틱처, 마이바티스, 스프링으로 만드는 실무형 개발자 로드맵 자바 웹 개발 워크북(저자: 엄진영, 출판사:프리렉)
- 스프링의 정석 : 남궁성과 끝까지 간다(패스트캠퍼스)
Comments