JAVA
[JAVA] JSTL 문법정리
오래오래 늘 함께
2018. 12. 13. 11:28
■ JSTL 표준 태그 라이브러리
: JSP페이지를 작성할때 유용하게 사용할 수 있는 여러 가지 커스텀 액션과 함수과 포함되어 있는 라이브러리
파일설치>> WEB-INF/lib 폴더 내에 jstl.jar(스펙라이브러리), standard.jar(구현라이브러리) 파일 추가
JSTL 문법 | |
== |
eq |
!= |
ne |
< |
lt |
> |
gt |
<= |
le |
>= |
ge |
▶ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Core : 일반 프로그래밍 언어에서 제공하는 것과 유사한 변수 선언
실행 흐름의 제어기능 제공 / 다른 JSP페이지로 제어를 이동하는 기능 제공
<c:set> | 속성 변수를 선언하고 초기값을 대입 |
<c:out> | 데이터 출력할때 |
<c:if> |
IF문 |
<c:chooose> |
Switch문 |
<c:forEach> |
For문 |
- <c:set>
- int num =100;
<c:set var="num" value="100"/>
2. <c:set var="num" value="${num1+num2}"/>
3. <c:set>액션을 이용하여 선언한 변수는 기본적으로 page테이터 영역의 속성으로 바인딩 된다.
4. 내장객체 지정가능
Page / request / session / application 중 한 값을 지정
<c:set var="price" value="15000" scope="request"/>
<span>상품가격: ${price}</span>
※ <c:out>
<c:out value="${변수}" escapeXml="true", (default="NULL") />
escapeXml="true" -> 기본값이며 생략가능 < > & ' " 자동변환 (HTML문자를 자동변환해줌으로써 크로스사이트스크립팅을 피할수 있다)
B. <c:if>
if( num1 > num2) { 실행문 };
<c:if test="${num1>num2}"/> 실행문 </c:if>
C. <c:choose>
<c:choose>
<c:when test="${param.NUM==0}">
실행문
</c:when>
<c:otherwise>
실행문
</c:otherwise>
</c:choose>
D. <c:forEach>
<c:forEach var="i" begin="0" end="100" step="1"> //step: 기본값 1
${i} <br/>
</c:forEach>
*item 속성
Collection / Iterator / Enumeration / Map 객체 / 콤마(,)로 구분된 항목들을 포함한 문자열를 순서대로 출력
String arr[ ] = {ㄱ, ㄴ, ㄷ};
request.setAttribute{"List", arr);
<c:forEach var="str" items="${List}"> items만큼 루프돌려서 출력한다.
<p>${str}</p>
</c:forEach>
▶ <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
문자열을 처리하는 함수 제공
List형태일 경우 |
${fn:length(변수명) eq 0} |
값 형태일 경우 | ${empty 변수명} / ${not empty 변수명} |
${fn:substring(문자열, 시작위치, 끝위치)} |
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
숫자, 날짜 시간을 변환하는 기능 / 국제화, 다국어 지원기능
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
데이터베이스의 데이터를 입력.수정.삭제.조회하는 기능 제공
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
xml 문서를 처리 할 때 필요한 기능 제공
▶ <%@ taglib prefix="web" uri="webUtility" %>
사용자 정의 태그 (커스텀 태그)
-> webUtilty.tld 파일 생성
※ webUtilty.tld 파일 구조
<tlib-version>0.1</tlib-verson>
<short-name>webUtility</short-name>
<uri>webUtility</uri>
<tag>
<name> </name> 태그이름
<tag-class> </tag-class> 태그가 수행할 클래스명(경로지정)
<body-content> </body-content> 태그가 body가 있는지 여부 결정
empty: body없음 / scriptless: body있음(기본값)
<attribute>
<name> </name> 해당 태그의 속성 이름
<required> true </required> 속성 필수 여부 (기본값 false)
<rtexprvalue> true </rtexprvalue> 표현식 사용여부 (기본값 true / false : 사용불가)
</attribute>
</tag>
<web:service methodName="getHtmlContent" var="info" className="menu_SCV">
webUtility.tld> 태그 이름: service -> 태그 클래스: tcms/webUtility/Service (Service.java)
속성 이름: methodName / ClassName
Service.java안에 getHtmlContent / menu_SCV값이 들어가서 수행한다.