지금까지 자바 웹 프로그램을 jsp 로 만들면서 가장 번거롭고 귀찮았던 작업이 프론트엔드 쪽에 자바 변수나 코드를 적용할 때마다 <% %> 를 사용하는 것이었다.
ex. 코드가 섞여 세상에서 제일 복잡해 보이는 내 미니 프로젝트 북 월드...
그런데 그것을 해결해 줄 수 있는 el & jstl!
잘 알지는 못하지만 새롭게 깨닫게 되거나 얻어가는 것이 있다면 이곳에 정리를 해서 단권... 단페화를 (단일페이지화) 만들어야겠다.
EL 은 항상 ${}을 사용한다. 표현에 연산식도 가능하다. 위 사진에 보이는 emtpy 는 그 값이 비어있느냐 비어있지 않느냐를 따질 수 있는 연산이다.
예를 들어 cookie 객체는 이렇게 사용된다.
이전에는 쿠키값을 이렇게 불러와서 쿠키 값에 무언가 있다는 걸 알고나면 그 쿠키들에 saveId 가 있는지 일일이 확인했다.
그리고 value 에 쿠키에서 불러온 값을 저장한 후 그걸 id 로 사용하는 방식이었다.
하지만 el 태그를 사용한다면?
별다른 자바 코드 없이 바로 cookie 객체에서 saveid 값을 불러다 사용할 수 있게 된다. 간단해지고 빨라졌다.
jstl 은 표현식뿐만 아니라 조금 더 다양한 프로그래밍에 맞게 설계된 언어이다. 우선 jstl을 사용하려면 jar 파일을 lib 폴더 안에 넣어 줘야 한다.
jstl 을 사용하고 싶다면 우선 url을 삽입해 주고 태그에 접두사를 붙여 줘야 한다. 자주 사용하는 것들을 표로 그려보자면 (나중에 복사하기 쉬우라고 직접 쳐서)
Library | url | prefix |
---|---|---|
Core | http://java.sun.com/jsp/jstl/core | c |
XML processing | http://java.sun.com/jsp/jstl/xml | x |
Formatting | http://java.sun.com/jsp/jstl/fmt | fmt |
Functions | http://java.sun.com/jsp/jstl/functions | fn |
Data access(SQL) | http://java.sun.com/jsp/jstl/sql | sql |
<c:set var="변수명" value="지정한 변수의 값" target="자바빈 객체명이나 Map 객체명" property="자바빈 객체나 Map 객체의 값을 설정할 변수명" scope="속성의 공유 범위의 유효기간을 설정"/>
가독성이 별로인가?
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<td align="right">
<fmt:formatNumber value="${dto.price}" pattern="###,###"/>원
</td>
패턴 설정해 주기
hit 가 비어 있니?
// 예시
<c:if test="${empty listProd}">
<tr>
<td colspan="7">등록된 상품이 없습니다.</td>
</tr>
</c:if>
중요한 점은 else 기능이 없어서 둘 다 test, 즉 if 로 테스트를 해 보아야 한다는 것이다.