why?) JSTL :
View = html/css/js + "JSP" + Java Beans
JSP -> XML tag? -> JSTL / EL : 간소화 -> View 단순!
JSP : java code : 기능 다양 !
<jsp:include> : 모듈화(template) !
<%@ include file=""%>
JSTL
<%@ include file=""%> -> 모듈화
-> 인자 전달이 잘 안됨 !
: 가급적이면 JSTL 코드 작성시에는 모듈화는 지양하라 !
: 기능이 부족 ! ex) 형변환 : 기능이 적음 !
-> 해결) 별도의 taglib(Java Bean code) 작성해야 됨!
-> ex) EL function !
JSTL이란? - JSTL(JSP Standatd Tag Library)은 JSP 페이지에서는 논리적인 판단, 반복문의 처리, 데이터베이스 등의 처리를 하는 코드를 깔끔하게 작성하기 위해서 작성한 표준화된 커스텀 태그이다. |
|
- JSTL을 사용하기 위한 준비사항!(1)
1. http:tomcat.apache.org/ 에 접속한다. 2. Taglibs 클릭 3. Apache Standard Taglib 클릭! 4. 원하는 버젼에 따라 download클릭!
5. binaries/ 클리! 6. 마지막으로 원하는 버젼과 원영체제에따라 선택후 다운받는다. 7. 다운받은후 압축을풀어 lib 폴더내의 jstl.jar, standard.jar 파일을 프로젝트에 추가시킨다. 8. - 접두어를 사용하기 위해서는 라이브러리의 URI 식별자와 접두어를 연결해야 한다. - taglib 지시자는 두개의 애트리뷰트를 써야하고, 이두 에트리뷰트에 각각 URI 식별자와 접두어 를 값으로 주어야 한다. ex) <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
|
- JSTL이 제공하는 태그의 종류
라이브러리 |
하위 기능 |
접두어 |
관련URI |
코어 |
변수지원 흐름 제어 URL 처리 |
c |
http://java.sun.com/jsp/jstl/core |
XML |
XML 코어 흐름 제어 XML 변환 |
x |
http://java.sun.com/jsp/jst/xml |
국제화 |
지역 메시지 형식 숫자 및 날짜 형식 |
fmt |
http://java.sun.com/jsp/jst/fmt |
데이터베이스 |
SQL |
sql |
http://java.sun.com/jsp/jstl/sql |
함수 |
콜렉션 처리 String 처리 |
fn |
http://java.sun.com/jsp/jstl/functions |
- 코어태그
기능분류 |
태그 |
설명 |
변수 지원 |
set |
JSP에서 사용될 변수를 설정한다. |
remove |
설정한 변수를 제거한다. |
|
흐름제어 |
if |
조건에 따라 내부 코드를 수행한다. |
choose |
다중 조건을 처리할 때 사용된다. |
|
forEach |
콜렉션이나 Map의 각 항목을 처리할 떄 사용된다. |
|
forTokens |
구분자로 분리된 각각의 토큰을 처리할 떄 사용된다. |
|
URL 처리 |
import |
URL을 사용하여 다른 자원의 결과를 삽입한다. |
redirect |
지정한 경로롤 리다이렉트한다. |
|
url |
URL을 재작성한다. |
|
기타 태그 |
catch |
예외 처리에 사용된다. |
out |
JspWriter에 내용을 알맞게 처리한 후 출력한다. |
set | <c: set var="num" value= "100" scope="request" /> <c: set var="sum" value=${num1+num2}"/> value값으로 EL식가능 <c: set var="sum" value="<%= num1+num2 %>" /> value값으로 익스프레션 가능 - var : 변수이름, value : 초기값, scope : 변수 저장될 데이터 영역(page, request, session, application) |
remove | <c:remove var="code" scope="request" /> |
if | <c:if test="${param.num1 > param.num2 }"> num1이 더큽니다. <- 조건식의 결과가 true일때만 출력되는 코드 </c:if> |
choose | <c: choose> <c: when test="${num == 0}"> <-- 조건식을 직접 기술합니다. 처음 뵙겠습니다. <br> <-- 첫번째 조건을 만족할때 출력되는 코드 <c:/when> <c: when test="${num == 1}"> <-- 조건식을 직접 기술합니다. 반갑습니다. <br> <-- 두번째 조건을 만족할때 출력되는 코드 </c:when> <c:otherwise> 안녕하세요. <br> <-- 세번째 조건을 만족할때 출력되는 코드 </c:otherwise> </c:choose> |
forEach | <c:forEach var="cnt" begin="1" end="10" step="2"> ${cnt} <br> </c:forEach> : var : 카운터변수 begin : 시작값 end : 끈값, step : 증가치 |
forTokens | <c:forTokens var="pet" items="햄스터-이구아나-소라게" delims="-"> ${pet} <BR> </c:forTokens> - var: 토큰을 대입할 변수, items: 토큰을 포함할 문자열, delims: 구획문자 |
import | <c:import url="http://www.hanb.co.kr/binfo/import.jsp" > <c:param name="product" value="TV" /> <c:param name="ad_index" value="007" /> </c:import> - url: 호출할 웹자원의 URL, name: 데이터 이름, value: 데이터 값. - c:param의 경우 데이터를 덧붙일경우 사용. |
redirect | <c:redirect url="http://www.hanb.co.kr" /> - url: 호출할 웹자원의 URL] - JSP페이지가 아닌 웹 자원과 다른 웹 서버에 있는 웹자원도 호출가능 |
url | <c:url var="myUrl" value="http://localhost:8080/brain09/add.jsp" <c:param name="num1" value="999"/> <c:param name="num2" value="1"/> </c:url> - var:변수이름, value:변수 값, name: 데이터 이름, value: 데이터 값 - c:param의 경우 데이터를 덧붙일경우 사용. |
catch | <c:catch var="e"> <-- 익셉션 객체를 저장할 변수 나눗셈의 결과는? <%= result %> <-- 에러가 발생할 수 있는 부분 </c:catch> - 자바언어의 try문과 비슷한 역활을한다. - try블록에 해당하는 일만 하기에 catch 블록에 해당하는 부분은 별도로 코딩. <c:if test="${e !=null}"> <-- 익셉션이 발생했는지 체크하는 조건식 에러 메시지: ${e.message} <-- 에러 메시지를 출력하는 코드 </c:if> |
out |
'Web > JSP/Servlet' 카테고리의 다른 글
프로퍼티(property) 란? (1) | 2013.08.04 |
---|---|
메타 태그(meta tag) (0) | 2013.08.01 |
모듈화에 사용되는 표준액션(<jsp:include>, <jsp:forwoard>, include 디렉티브) (0) | 2013.07.24 |
web safe color(216가지) (0) | 2013.07.18 |
get 방식과 post방식의 차이점 (0) | 2013.07.17 |