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} |
'Programming > java 고급과정' 카테고리의 다른 글
자바 원하는 문자열 추출(indexOF, lastIndexOF, substring) (0) | 2012.04.19 |
---|---|
JSTL(Java Standard Tag Library) 커스텀 태그 (0) | 2012.04.12 |
Dynamic Web Project의 .java, .class 경로 (0) | 2012.04.12 |
<jsp:useBean> 액션태그 (0) | 2012.04.11 |
java 고급과정 8일차 (0) | 2012.03.14 |