본문 바로가기
Programming/java 고급과정

EL(Expression Language)

by 막이 2012. 4. 12.

EL ( Expression Language )

자바 코드를 최소화하기 위해 사용

EL은 ${표현식} 형태를 갖는다

JSP 2.0부터 default사용이나, 이하 버전에서 사용불가

 

 

 

Expression Language의 특징

1. Object scope에 접근용이

2. Bean Field에 접근용이

3. Collection에 접근용이

4. 자체 연산자 제공 (자바연산자+@)

5. 내장객체제공(pageScope, reqeustScope, sessionScope, applicationScope)

 

 

<%@page isELIgnored="false"%>

EL을 사용할 시에 상단에 써주거나 안써줘도됨.

JSP의 default값이 false

(사용하지 않을 경우 true로..)

 

Expression tag로 표현

<%="홍길동" %>

Expression language로 표현

문자 : ${"홍길동"}

 

 

<기본적 산술,논리,관계연산자 사용>


숫자+숫자 : ${1+2}<br/>
문자+숫자 : ${"1"+2}<br/>
문자*숫자 : ${"3"*3}<br/>

 

Expression tag를 사용하면 문자*숫자

<%=integer.parseInt("3")*3%>

 

<조건 연산자 사용>

조건 ? true : false = ${10>100 ? "true":"false" }

==> 조건? true : false = false

<Empty 연산자 사용>
${empty null }   ====> true
${empty ""}       ====>true
${empty " "}       ====>false(스페이스가 들어가 있기 떄문)

 

 JAVA / UseBean / EL 비교

 

session.setAttribute("name", new String("오텝");

<%

String name=session.getAttribute("name");

%>


<jsp:useBean id="name"  class="클래스" scope=session/>

<%=name%>


${sessionScope.name}

 

 

 

<% A a= (A)Session.getAttribute("a")%>

<%=a.getName()%>


<jsp:useBean id="a" class="A" scope=session/>

<jsp:getproperty name="a" property="name"/>


${sessionScope.a.name}

<%=request.getParameter("tell")%> ======>${param.tell}

 

<String [] sw = request.getParamValues("sw")%>

<%=sw[0]%>=====>${paramValues.sw[0]}

(java에서는 존재하지 않는 인덱스 번호를 호출 했을 경우  ArrayIndexOutOfBoundException, client가 아무것도 선택하지 않을 경우 NullPointExcception을 발생시키지만 EL에서는 Empty출력 에러나지 않음)

EL은 자체 연산자 . 과 [] 연산자를 가짐

${pageScope.name} = ${pageScope["name"]} 

${requestScope.name} = ${requsetScope["name"]}

${empty sessionScope.name1[0]} = ${empty sessionScope["name1"][0]}

${applicationScope.name.a} = ${empty applicationScope["name"].a}