JSTL, JSP를 사용하는 사람이라면 알아야 할 것
- Web/JSP
- 2021. 5. 2.
JSTL (Jsp Standard Tag Library)
JSTL은 JSP를 사용하는 사람이라면, 알아둔다면 매우 좋습니다.
■ 장점
- 빠른 개발
- 코드 재사용성
- 스크립틀릿 테그 사용할 필요가 없음
- HTML 테그와 비슷하여 JSP 작업시 편리.
JSP를 사용할때는 기본적으로 <% %>을 이용하여, JAVA문구를 이용하지만, JSTL은 테그만으로도 이용이 가능합니다.
특히 EL코드는 매우 중요하면서도 자주 쓰이는 문구입니다.
이 EL코드를 활용하기 위해서 JSTL을 사용한다고 과언이 아닐정도 입니다.
다만, 처음보는 사람은 생소할 수가 있어서 접근하는데 불편함을 겪기도 하지만 EL코드를 한 번쯤 접했던 사람들이라면 EL코드를 사용하기 위해 JSTL을 사용하게 될 것 입니다.
■ EL코드
기본적으로 request.getAttribute를 대신하여 사용합니다.
request.getAttribute("abc") => ${abc} 로 표현합니다.
여기서 주의점은 request.getParameter는 해당사항이 아니므로, 오해하시면 안된다는 것 입니다.
이를 사용하게 된 원인은 서버로부터 넘어오는 값을 호출 하기 위해서는
JSP 스크립트가 필요하게되며, <% %. 활용으로 인해 HTML을 다루는 사람이라면 매우 불편함을 호소하게 됩니다.
이유는 JSP 스크립트 안에서는 HTML문구가 안 되기 때문이죠.
그러나 EL코드는 HTML문구 사이로 자연스럽게 사용되기도 합니다.
<input type="text" value="<%=request.getAttribute("key")%>">
이 jsp 스크립트를
<input type="text" value="${key}">
이렇게 끝낼 수 있게 됩니다.
▼예제 보기
사용방법은 위와 같습니다. java코드로부터 받은 request.setAttribute의 값을
html에서 키값을 통해 결과값을 낼 수 있게 됩니다.
▼예제 보기
그리고 request뿐만 아니라 다른 값 또한 가능 하다는 것을 확인 할 수 있습니다.
만약 page, request, session, application의 키값이 동일할 경우, 앞에 Scope가 명시되면 구분 또한 가능합니다.
그렇다는 뜻은 Scope끼리 동일한 이름의 key값이 없다면 Scope는 생략이 가능하다는 의미도 됩니다.
다만 주의점이 있다면, 같은 Scope의 같은 key이 될 경우 인식이 되지 않으니 그 점을 주의 하셔야 합니다.
Scope 종류
이름 | 보관소 |
pageScope | JspContext |
requestScope | ServletRequest |
sessionScope | HttpSession |
applicationScope | ServletContext |
■ EL코드로 객체 표현하기
java에서 반드시 필요한 것은 DTO, VO, BEANS 등 다양한 이름으로 불리우는 객체입니다.
이또한 setAttribute를 통해 값을 넣을 수가 있는데, 이를 표현하는 방법에 대해 알아보겠습니다.
▼예제 보기
설명을 하기 위해 <%@ page import%>를 통하여 Mollang을 불러왔습니다.
그러나 el코드를 사용할 때에는 page imort를 불러오지 않고도 사용 할 수 있습니다.
Mollang의 객체를 만들고, mollang의 name과 blog에는 각각의 값이 들어갑니다.
이를 평범하게 request.getAttribute를 가져올 경우, mollang의 주소값을 가져오는 것을 확인 할 수 있게 됩니다.
이제 우리는 이를 활용하여 값을 표현하면 됩니다.
${key값.필드명} 혹은 ${key값.메소드명}으로 표현하면 값이 정상적으로 표현되는 것을 확인 할 수 있습니다.
이제 이를 Scope까지 활용하게 된다면 3번 예시와 같게됩니다.
${Scope명.객체명.필드명}
표현방법과 생략에 대해 이해를 하신다면 EL코드가 엄청 어렵지 않다는 것을 알 수 있습니다.
■ EL코드로 배열 표현하기
${키값}은 request.getAttribute를 대신하여 사용 할 수 있음을 알 수 있었습니다.
그리고 객체 또한 담을 수 있는 것을 확인 할수 있었습니다.
그렇다면 배열을 표현할 때는 어떨까?
방법은 똑같습니다. 다만, 배열이라면 index가 빠질 수 없겠죠?
▼예제 보기
EL코드로 배열 표현하는 방법 입니다.
arr이라는 배열의 이름을 request.setAttribute의 list라는 이름으로 담게 된다면
출력시 list[0]으로 하면 됩니다. index에 따라서 값이 표현되는 것을 확인 할 수 있습니다.
▼예제 보기
이를 활용하여, ArrayList 또한 표현 할 수 있는 것을 확인 할 수 있습니다.
■ EL코드, 그 외 사용 방법
▼예제 보기
이 밖에도 ${} 안의 값을 불러오고 계산이 가능합니다.
▼예제 보기
그리고 만약 null이 담겨 있을 경우, el코드로 표현되는 결과값은 "" 공백으로 표현됩니다.
이에 명심하여, null값 비교를 원할 경우 "" 공백을 통해 비교 할 수 있으므로 참고하셔야 합니다.
'Web > JSP' 카테고리의 다른 글
[JSP] 절대경로와 상대경로 (0) | 2021.05.14 |
---|---|
[JSP] WEB.XML은 무엇일까? (0) | 2021.05.13 |
[JSP] JSP 빈즈 (0) | 2020.08.28 |
[JSP] Bean (0) | 2020.08.26 |
[JSP] 지시어 (0) | 2020.08.26 |