본문 바로가기
개발/HTML5

Expression과 Expression Language

by pastry 2014. 12. 23.

Expression (Scriptlet)의 사용법과 EL(Expression Language)의 사용법 차이를 비교해보자.

 

ex)

<%= "Expression Tag 내용을 표현" %><hr>
문자 : <%="홍길동" %><br>
숫자 : <%= 1234 %><br>
문자 + 숫자 : <%="홍길동"+" "+1234 %><hr>


<%= "Expression Language 로 표현" %><br>
문자 : ${"홍길동"}<br>
숫자 : ${1234}<hr>


${"EL을 이용한 내용 표현 방법"}<br>
숫자 + 숫자 : ${1+2}<br>
JSP 표현식 태그 : <%= "1"+"2" %><br>
el 문자 + 숫자 : ${"1"+2}<br>
el 문자 * 숫자 : ${"3"*3}<br>
JSP 표현식 : <%=Integer.parseInt("3")*3 %><br>
10 == 10 : ${10==10}<br>
10 >= 1 : ${10>=1}<br>
!true : ${!true}<br>
20/6 : ${20 div 6}<br>
20%6 : ${20 mod 6 }<br>

 

표현 방식이 다른것 이외에도 스크립트릿은 문자 + 숫자의 합이 가능하지만 EL에서는 불가능하다.

하지만 문자형이 숫자형으로 바뀔수 있는 경우

ex) "1"+1

이런식으로 자동으로 케스팅이 되서 연산된다.

 

그럼 익스프레션 언어의 목적을 정의해보자.

"데이터를 출력하는 코드가 함축적이고 간결해지기 때문에 가독성이 좋아지고 유지보수가 편해진다."

 

속성 값을 저장하는 객체에서 속성을 쓰고 읽는 문법도 다르다.

 

request.setAttribute("SUM", new Integer(sum));
RequestDispatcher dis = request.getRequestDispatcher("Result.jsp");
dis.forward(request, response);

 

이런식으로 request에 SUM이라는 속성값을 달아 놓은경우

 

Expression Tag : <%=request.getAttribute("SUM") %><br>
Expression Language : ${SUM}

 

이런식으로 속성값을 받아 쓰게 된다.

여기서 EL은 기냥 속성명만 명시할경우 속성이 범위에 따라 같은 이름으로 저장되어 있을수가 있는데

그럴경우는 범위가 작은 속성부터  넓은 순으로 진행된다.

 

page->request->session->application

 

만약 특정 범위(scope)에서 값을 가져오고 싶다면 아래와 같이 사용하면 된다.

 

page 어트리뷰트 : ${pageScope.AT}

request 어트리뷰트 : ${pageScope.AT}

session 어트리뷰트 : ${pageScope.AT}

application 어트리뷰트 : ${pageScope.AT}

'개발 > HTML5' 카테고리의 다른 글

JSP에서의 페이지 이동 방법  (0) 2014.12.22
웹 관련 정리 내용  (0) 2014.12.19
JSP기본 정의  (0) 2014.12.16
03.HTML - form요소과 form내부의 input요소  (2) 2014.12.02
02.HTML - Table 태그의 종류 및 사용법  (0) 2014.12.02

댓글