JSTL - (코어 태그 라이브러리), (국제화 태그 라이브러리)set, if, choose, forEach, formatNumber, formatDate, taglib - core, fmt , escape

2019. 5. 10. 09:00카테고리 없음

--------------------------------------------JSTL---------------------------------------------

============================================================
※. 이클립스에서 JSTL을 사용할려면 
C:\app\apache-tomcat-9.0.19\webapps\examples\WEB-INF\lib   



위의 톰캣 주소에 jar 두개를 아래의 경로로 붙여넣기 한 후 이클립스에서 lib를 새로고침한다.
C:\projects\web_workspace\sample\WebContent\WEB-INF\lib


============================================================



JSTL을 사용하면 JSP안의 if문을 아래처럼 간단하게 사용할 수 있다.

========================================
     일반적               -->               JSTL
<%                                     ​​​​<if test="  ">  
            if( ) {                               태그
%>                                      </if>  
            태그
<%
            }
%>
=========================================

JSTL의 종류

            코어 태그 라이브러리
                        - 변수지원
                                    set : 표현식에 해당하는 값을 출력으로 보낸다(표현한다.) 
                                           <별칭명:out value="~"></별칭명:out>

 지정된 스코프의 객체에 속성을 저장한다.
 스코프를 지정하지 않으면 page다.
 <c:set var="변수명" value="값" scope="스코프" />

<c:set var="a" value="홍길동" scope="page" />
pageContext.setAttribute("a", "홍길동");

<c:set var="a" value="홍길동" scope="request" />
request.setAttribute("a", "홍길동");

<c:set var="a" value="홍길동" scope="session" />
session.setAttribute("a", "홍길동");

<c:set var="a" value="홍길동" scope="application" />
application.setAttribute("a", "홍길동");


                                    remove : 설정한 변수를 제거한다.          

지정된 스코프의 객체에서 속성을 삭제한다.
스코프를 지정하지 않음 page다
<c:remove var="변수명" scope="스코프" />

<c:remove var="a" scope="page" />
pageContext.removeAttribute("a");

<c:remove var="a" scope="request" />
request.removeAttribute("a");

<c:remove var="a" scope="session" />
session.removeAttribute("a");

<c:remove var="a" scope="application" />
application.removeAttribute("a");



                        - 흐름제어 (if, if ~ else if) 중요!
                                    if : if문이다.
                                    choose : 다중조건을 처리할 때 사용
                                                choose, when, otherwise를 사용하며 when과 otherwise는 
                                                choose 내부에서만 사용가능하다.
                                                when에는 각각의 조건을 쓸수 있도 otherwise는 마지막 else처럼 쓰인다.
                                                otherwise는 단 한번만 사용이 가능하다.


                        - 반복처리 (for) 중요!
                                    forEach : 컨텐츠를 반복 출력할 수 있다. (for문)
                                                 
                                                ※. 
                                                            varStatus 옵션명   사용예) ${a.옵션명}
                                                                        index - 0부터 시작하는 순번
                                                                        count - 1부터 시작하는 순번
                                                                        first - 첫번째 행이면 true
                                                                        last - 마지막 행이면 true

                                                 
                                                            - 패이징 처리에 주로 사용된다.


                                    forTokens : 구분자로 분리된 각각의 토큰을 처리할 때 사용된다.



                        - URL 지원 (리다이렉션, include)
                                    import : URL을 사용하여 다른 자원의 결과를 삽입한다.
                                    redirect : 지정한 경로로 리다이렉트 한다.
                                    url : URL을 재작성 한다.

                        - 기타 (값의 표현, EL)
                                    out : JspWriter에 내용을 출력한다.
                                    catch : 익셉션을 처리할 때 사용한다.



            국제화 태그 라이브러리 (i18n  ->  internationalization)
                        - 포멧팅
                              - 날짜 숫자에 대한 포멧팅
                              - formatNumber -  1000000 -> 1,000,000 등 변경가능
                              - formatDate -  2019-05-07 -> 2019/05/07 등등 변경가능



            XML 태그 라이브러리 (사용 X)

            데이터베이스 태그 라이브러리 (사용 X)

            함수 태그 라이브러리 (사용 X)



//////JSTL을 사용할려면 taglib를 설정해야 한다.

<%@ taglib prefix="별칭명" uri="태그라이브러리 이름"
uri가 url처럼 생긴이유가 이름이 유니크(유일값)하기 위해

core tag 의 uri - http://java.sun.com/jsp/jstl/core
국제화 태그 의 uri - http://java.sun.com/jsp/jstl/fmt


URL과 URL
            - URL
                        * Uniform Resource Locator
                        * 리소스(자원)의 위치를 나타낸다.
                        * 실제 파일의 물리적인 위치를 나타낸다.
                        예)  http://localhost/images/1.png
                              http://localhost/hta/main.jsp
            - URI
                        * Uniform Resource Identifier
                        * 리소스(자원)를 구분하기 위한 식별자를 뜻한다.
                        * 클라이언트의 요청을 구분하기 위한 용도로 활용되거나,
                          리소스(자원)에 대한 구분자열할을 한다.
                        예) http://www.naver.com/news/list.nhn
                             http://www.naver.com/movie/list.nhn


html의 escape 문자
            - html에서 특수문자를 표현할 때 사용되는 문자 (뒤에 ;를 붙여야한다.)        
                        공백        &nbsp  
                        <           &lt
                        >           &gt
                        ""          &quot
                        '            &apos
                        &          &amp



예시 ) JSTL 코어 태그 라이브러리 out 사용하기  <별칭명:out value="~"></별칭명:out>





예시2) JSTL 코어 태그 라이브러니 if test="" 사용하기





예시3) choose, when, otherwise (else같은것) 사용하기 





예시3-1) choose, when 사용하기





예시4) forEach 사용하기   





예시4-1) forEach 사용하기





예시4-2) forEach 의 begin, end 사용하기  






예시4-3) choose, when 와 forEach (var items varStatus) 사용하기

 



예시5) formatDate 사용하기





예시6) formatNumber 사용하기