- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[JSTL] <c:out> <c:set> <c:remove> <c:catch> 태그 본문
오랜만에 JSP 공부를 하는 것 같습니다. 그간 너무 게을리 지내서.. -_-;; 아무튼.. JSTL 이라는 놈에 대해서 한번 알아보도록 하겟씁니다. 그간 JSTL 을 배우기전에 표현언어라는 걸 배웠었고.. ${변수명} 이런식으로 사용했던거.. 획기적으로 JSP 소스코드를 줄여주는 역할을 했던 커스텀 태그도 있었구요.. 이러면서 나왔떤게 커스텀 태그를 일일이 다 만들어 줘야하는가.. 라는 그런 의문들이 생겨 났는데..
JSTL을 사용하면 됩니다. 다 만들 필요없이.. 만들어 놓은걸 쓰면 되는거죠... 그게 바로 JSTL 이라는 겁니다. JSTL은 그냥 쓴다고 되는게 아니라.. 여러가지 환경 설정이 필요합니다.
일단 http://jakarta.apache.org 에 가서 JSTL 라이브러리를 다운 받아서 설치를 하셔야 합니다.
머 설치 과정을 재끼고 한번 실습을 하도록 하겠습니다. 먼저 배워볼 JSTL 의 영역은 바로 코어 라이브러리 인데요.. 가장 기본적인 라이브러리다.. 라고 생각하시면 됩니다. 코어 한것 이외에도 XML도 있고 SQL도 있고 여러가지 라이브러리가 있다고 하는데 차후에 배우게 되겠지요..
아!! 까먹은게 있습니다. JSTL 을 사용할려면 미리 선언을 해줘야 합니다! 잊지 않으셨겠죠! taglib!
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out>
가장 처음 나오는 것이 <c:out> 태그 입니다. 왜 하필이면 c 이냐 할수있는데.. prefix 속성이 c라서 그런거죠 ㅎㅎ
얘는 이전에 JSP 표현식으로 사용했던 <%= %> 요걸 대체 하는 것이라고 합니다. 그치만 표현언어를 사용하면 더 쉽겠죠 뭐.. ㅎㅎ 따라서 out 태그야 뭐 그리 중요한게 아닙니다. 하지만 out 태그를 배우면서 알아 둬야겠지요.. 어떤식으로 JSTL 태그를 사용하는 것인가? 그리고 어떤 속성들이 있는지를 말이죠.. 한마디로 문법!!
소스를 한번 볼까요?
<body>
<table>
<c:forEach var="member" items="${members}" >
<tr>
<td>${member.name}</td>
<td><c:out value="${member.email }" escapeXml="false"> email 없음</c:out></td>
</tr>
</c:forEach>
</table>
</body>
forEach는 재껴두구요.. 아마도 향상된 for문.. forEach 문을 사용하는거 같습니다. 일단 재껴둡시다 ㅎㅎ 먼저 out 태그는 한번 보실수 있는데요.. 위처럼 ${member.name} 과 같이 표현식을 사용하니까 out 태그를 안써줘도 된다는 점을 확인할 수가 있죠.. 하지만 밑에 부분은 out 태그를 써봤습니다. 안쪽으로 표현식이 들어가게 되는군요.. ㅋ
escapeXml 이라는 태그는 < > & ' " 이런 문자들을 일반 문자로 변환할껀지 물어보는 속성이라고 하네요.. 그리고 out 태그는 닫는 태그도 있는데요 그 사이에 들어가게 될 값은 해당 email 변수에 아무것도 없을 경우에 기본값으로 출력될 내용이 됩니다!
<c:set>
얘는 변수 값을 설정하거나 객체 멤버 변수 값을 설정할때 사용합니다. 일단 예제를 보실까요??
<body>
<c:set value="Hello World" var="msg"/>
msg : ${msg}<br>
msg : <%= pageContext.getAttribute("msg") %>
</body>
얘를 살펴보면.. msg 라는 변수에 "Hello World" 를 넣었다는걸 눈대중으로 알수가 있습니다. 그리고 아래 두줄은 표현식을 사용한 것과 그냥 JSP 형식으로 쓴것이 얼마나 코드를 줄여주는지를 보여주고 있습니다.
그럼 객체의 멤버 변수 값을 설정할때는 어떻게 사용하는가...? 하는 건데요..
<c:set value="변수의 값" target="객체이름" property="객체의 멤버 변수명"> 이런식으로 사용합니다. 예를들어서 member 라는 객체에 있는 name 이라는 변수를 "남한산" 이라고 해주고 싶다면..
<c:set value="남한산" target="member" property="name"> 이라고 해주면 되겠지요..
<c:remove>
얘는 해당 범위내에 있는 변수를 제거 한다고 합니다. 범위라는 것은 예전에 jsp:useBean 태그 사용할 때도 한번 나왔던건데요.. session 이냐 page냐.. 하는 등의 범위인데요. 말이 나와서 얘긴데 scope 의 크기는 어떻게 측정을 할 수 있을까요? 아래와 같습니다.
page < request < session < application
자.. 아주 간단하죠.. 여기선 scope를 주진 않았지만.. 어쨌든 지워지는걸 볼수가 있습니다.<body>
<c:set value="Hello World" var="msg"/>
before remove : <c:out value="${msg}"/><br>
<c:remove var="msg"/>
after remove : <c:out value="${msg}"/><br>
</body>
<c:catch>
마지막으로 catch 태그 입니다. 이름만 봐도 알수 있듯이 예외처리를 하는 녀석입니다.
<body>
<c:catch var="errMsg">
<%=9/0 %>
</c:catch>
error message : ${errMsg}
</body>
이렇게 되면 발생하는 예외들을 잡아서 살짝 보여주겠죠 ㅋ
'★─Programing > ☆─WebProgram' 카테고리의 다른 글
[HTML] <fieldset> <legend> (0) | 2016.05.18 |
---|---|
[Spring] 스프링과 Tiles 2 (0) | 2016.05.18 |
[MyBatis] 쿼리 파라미터 null 처리방법 (0) | 2016.05.16 |
[MyBatis] Mapper XML File 이란? (0) | 2016.04.28 |
[HTML] HTML 특수문자표, ( 숫자표현,문자표현 ) 코드표 (0) | 2013.05.06 |