ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [JAVA] JSTL 문법정리
    JAVA 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문


        1. <c:set>
          1.  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값이 들어가서 수행한다.












    'JAVA' 카테고리의 다른 글

    [JAVA] 정규표현식  (0) 2018.12.12
    [이클립스] DEBUG 사용  (0) 2018.12.12

    댓글

Designed by Tistory.