jsp 에 쓰이는 표현 방법은 참 다양하게 있는 듯.
어느새 이렇게 3가지를 배웠고........ 정리의 필요성이 아주 강하게 느껴진다.....
일단 먼저 EL 에 대해서 정리하고 JSTL 정리하기!
EL : Expression Lang 이라는 뜻으로, 말 그대로 표현 언어라는 뜻이다.
표현식이 <%= 값 %>
의 형식으로 데이터를 표현했다면, 표현언어는 ${ 값 }
으로 표현한다.
EL 을 사용할때 JSP 상단에 <%@ page isELIgnored=“true” %>
를 적어주기도 하는데,
false
가 디폴트 값이고, true
면 EL 식을 쓸 수 없다. ( ignored ... 아주 직관적이쥬? )
<table width="800" border="1">
<tr>
<td width="300"></td>
<td><%=2%></td>
</tr>
<tr>
<!-- ${ } 를 문자로 출력하기 위해서 \ 붙여줌 -->
<td>\${2 }/ \${ "2" }</td>
<td>${ 2 } / ${ "2" }</td>
</tr>
<tr>
<td></td>
<td><%-- 선언되지 않은 표현식은 사용 불가 <%= data %> --%></td>
</tr>
<tr>
<td></td>
<!-- EL 은 선언 안된 변수 사용해도 에러가 안남 -->
<td>데이터 : ${ data }</td>
</tr>
</table>
위의 코드에서 data
는 어디에도 선언되지 않은 변수이다.
이 때 <%= data %>
는 에러가 뜨지만 ${ data }
는 브라우저에서 그냥 공백처리 될 뿐 에러가 뜨지 않는다.
EL 표현식 안에서 연산처리도 가능한데, 몇가지는 영어로 쓰인다.
EL 표현식 | 결과 |
더하기 : ${ 2 + 5 } | 7 |
나누기 : ${ 2 div 5 } | 0.4 |
나머지 : ${ 2 mod 5 } | 2 |
문자열 연산 : ${ "10" + 1 } | 11 |
문자열 연산 2 : ${ "일"}${1 } | 일1 |
null 연산 : ${ null + 1 } | 1 |
비교연산 : ${ 2 < 3} | true |
비교연산 2 : ${ 2 lt 3} | true |
empty : ${ empty data } | true |
삼항연산 : ${ (2 < 3) ? "작다" : "크다" } | 작다 |
...ing...