본문 바로가기
JSP/정리

[jsp] EL(Expression Language)

by 미네밍 2017. 1. 19.
<EL>

표현식 또는 액션 태그를 대신해 값을 표현하는 언어이다. 간단하지만 실무에서 많이 쓰인다. 가독성이 좋게끔 코딩할 수 있는 방법이다.


<%= %> 을 대신해 ${ value } 와 같은 형식으로 쓰게된다.


1
2
${'0'}<br/>
${'ABC' }<br/>
cs


다음과 같은 구문은 



이런 결과를 도출한다. 연산도 가능하다.


1
2
${1-2}<br/>
${1+2}<br/>
cs


이 구문은 각각 -1, 3 을 출력한다


<jsp:getProperty name="member" property="name"/> 와 같은 액션 태그 또한, ${member.name} 와 같이 표현 가능하다.


1
2
이름 : <jsp:getProperty name="member" property="name"/>
이름 : ${member.name} <br/>
cs


역시 위 두 구문은 똑같은 결과를 도출해 낸다.


EL 에는 내장객체가 존재한다.


pageScope : page 객체를 참조하는 객체

requestScope : request 객체를 참조하는 객체

sessionScope : session 객체를 참조하는 객체

applicationScope : application 객체를 참조하는 객체

param : 요청 파라미터를 참조하는 객체

paramValues : 요청 파라미터(배열) 을 참조하는 객체

initParam : 초기화 파라미터를 참조하는 객체

cookie : cookie 객체를 참조하는 객체


el.jsp

1
2
3
4
5
<form action="objelOk.jsp" method="get">
        아이디 : <input type="text" name="id"><br/>
        비밀번호 : <input type="password" name="pw"></br>
        <input type="submit" value="login"/>
</form>
cs


다음과 같은 form 태그안에 있는 내용을, objelOk.jsp 에 넘긴다고 가정한다.


objelOk.jsp

1
2
3
4
5
    <%
        String id = request.getParameter("id");
    %>
 
    아이디 : <%= id %>
cs


기존에는 위와 같이 값을 가져왔다면, 


1
아이디 : ${param.id} <br/>
cs

이렇게 단 한 문장으로도 똑같은 기능을 할 수 있다.


1
2
3
4
5
6
<%
    application.setAttribute("application_name""application_value");
    session.setAttribute("session_name""session_value");
    pageContext.setAttribute("page_name""page_value");
    request.setAttribute("request_name""request_value");
%>
cs

위와 같이 여러가지 내장객체들로 속성을 설정했을 때


1
2
3
4
applicationScope : ${ applicationScope.application_name } <br/>
sessionScope : ${ sessionScope.session_name } <br/>
pageScope : ${ pageScope.page_name }<br/>
requestScope : ${ requestScope.request_name } <br/>
cs

다음과 같은 형식으로 출력이 가능하다. 

뿐만 아니라, 서버의 web.xml 에 넣어 두었던 context-param  정보도 initParam 객체를 사용하여 쉽게 가져올 수 있다.


1
2
<!--context 초기화 파라미터 web.xml에 기재 -->
    ${initParam.con_name } <br/>
cs


이처럼, EL은 필수는 아니지만, 조금 더 높은 가독성과 효율성을 위해 꼭 필요하다!

'JSP > 정리' 카테고리의 다른 글

[jsp/개발방법론] FrontController 패턴  (0) 2017.01.20
[jsp] JSTL  (0) 2017.01.20
[jsp] 파일 업로드  (0) 2017.01.18
[jsp] 커넥션 풀  (0) 2017.01.17
[jsp/DB] mysql 과 jsp 연동하기  (0) 2017.01.17

댓글