본문 바로가기
JSP

23.03.16 (EL, JSTL[c:, fmt:]

by 2023코딩시작 2023. 3. 16.

😀😀

 

# EL(Expression Language : 표현 언어)
  - 표현 언어라고 함.
  - 변수의 값을 출력할 때 사용하는 스크립트 언어.
  - JSP 2.0 이후 버전부터 사용이 가능함.
  - 자바 코드가 들어가는 표현식(<%= %>)을 좀 더
       편리하게 사용하는 데이터 출력 기능임.
  - 사용법이 간결하고, 예외와 형변환에 관대함.
       예를 든다면 자바에서 값이 null인 변수를 사용하면 예외가 발생하지만
       표현 언어를 사용하면 예외가 발생하지 않음. 
  - 자바 코드를 사용해야 했던 모든 곳에 표현 언어를 사용할 수 있음.
  - 라이브러리 없이 사용이 가능함.
  
  - 표현 언어의 특징
    * 기존의 표현식보다 편리하게 값을 출력할 수 있음.
    * 변수와 여러 가지 연산자를 포함할 수 있음.
    * JSP 내장 객체에 저장된 속성도 표현 언어로 출력할 수 있음.
    * 표현 언어 자체의 내장 객체도 지원이 됨.
    * 산술 연산, 비교 연산, 논리 연산이 가능함.
    
  - 표현 언어 형식
    예) <%=변수 %>  ==> ${변수 or 수식 }
    
  - 표현 언어 연산자의 종류
    * 산술연산자 : +, -, *, /(div), %(mod)
    * 관계(비교)연산자
      == or eq : 두 수의 값이 같은지 비교함.
      != or ne : 두 수의 값이 다른지 비교함.
      >= or ge : 값(좌측)이 다른 값(우측)보다 크거나 같은지 비교함. 
      > or gt : 값(좌측)이 다른 값(우측)보다 큰지 비교함.
      <= or le : 값(좌측)이 다른 값(우측)보다 작거나 같은지 비교함.
      < or lt : 값(좌측)이 다른 값(우측)보다 작은지 비교함.
    * 논리연산자
      && or and : 논리곱 연산을 함.
      || or or : 논리합 연산을 함.
      ! or not : 부정 연산을 함.
    * empty 연산자
      - 값이 null 이거나 빈 문자열이면 true 값을 반환함.
      - 또한 List, Map 같은 저장 객체에 값(데이터)이 존재하는지
               여부를 판단하는 연산자임.
        
  - 표현 언어에서 제공하는 내장객체
    * page
      - 현재 페이지의 범위에만 한정됨. 페이지가 끝나면 값이 유효하지 않음.
    * request(자주씀)
      - request 생명 주기는 request 요청을 받고, 요청에 대한 처리를
              완료하는 시점까지만 한정됨.
    * session
      - session의 생명 주기는 설정된 유효 시간이 기준이 됨.
    * application
      - 웹 사이트가 실행되는 동안만 유효하게 됨. 애플리케이션이 종료가
              되면 유효하지 않게 됨.
    * param
      - 파라미터 값을 얻어올 때 사용됨.
    * paramValues        
      - 파라미터 값을 배열로 얻어올 때 사용됨.
      
    ※ 내장 객체를 사용할 때는 map 자료 구조 형태로 key, value 값으로 저장.
       setAttribute(String key, Object value)
       getAttribute(String key)

 

😀

<%

pageContext.setAttribute("Su", su);

>%

 

${Su}

 

😀<%-- 숫자형 문자열과 숫자를 더하면 문자열을 자동으로 변환하여 더해줌 --%>
\${"20" + 55} >>> ${"20" + 55}<br>


😀 <%-- 피연산자가 null이면 0으로 처리가 됨
따라서 덧셈 연산이 진행됨  --%>
\${null + 45 } >>> ${null + 45 } <br>

 

 

 

 

# JSTL(JSP Standard Tag Library)

  - JSP 페이지에서 스트립트릿(자바코드)과 HTML 코드가 뒤 섞이게 되는 현상이 발생함
  
  - 이렇게 뒤섞인 코드는 알아보기가 쉽지 않게 되는 단점이 발생함.
   따라서 가독성이 낮아짐
  
  - JSP 페이지에서 스트립트릿에 들어가는 자바 코드중에 논리적인 판단, 반복처리, 포멧처리 등을 
    HTML 태그처럼 사용할 수 있도록 표준으로 만들어서 정의한 것이 JSTL 라이브러리임.
    
  - JSTL을 사용하기 위해서는 라이브러리 파일이 필요함
   * jstl.jar
   * standard.jar

https://tomcat.apache.org/taglibs/standard/ -> Standard 1.1 (download) -> binaries/
-> jakarta-taglibs-standard-1.1.1.zip -> 압축푼후 lib -> 두 jar파일을 복사
-> (JSP)WebContent -> WEB-INF -> lib에 붙여넣기

 

<%--
기본적인 JSTL 태그 ==> 출력할 때는 EL 언어를 사용

1. 변수 선언 태그(set)
   <c:set var="변수명" value="값"> </c:set>
       예) <c:set var="su" value="10" />
       ==> int su = 10;
      <c:set var="str" value="Hello" />
      ==> String str ="Hello";
      
2. 출력 태그(out)
<c:out value="변수명" />
예) <c:out value="str" />

3. 삭제 태그(remove)
     <c:remove var="변수명" />
         예) <c:remove var="str" />
         
  4. 조건 처리 태그(if문) ==> else 문이 없음
     <c:if test="조건문" var="변수명" />
     
  5. 다중 조건 처리 태그(choose문) ==> switch~case문과 유사
     <c:choose>
        <c:when test="조건식1">
                 조건식1인 참인 경우 실행 문장 </c:when>
        <c:when test="조건식2">
                 조건식2인 참인 경우 실행 문장 </c:when>
        <c:when test="조건식3">
                 조건식3인 참인 경우 실행 문장 </c:when>
        <c:when test="조건식4">
                 조건식4인 참인 경우 실행 문장 </c:when>
        <c:otherwise>
           상기 조건식 이외의 경우 실행 문장 </c:otherwise>
     </c:choose>
 
  6. 반복문(forEach문) ==> for문과 유사함
  <c:forEach begin="시작값" end="마지막값"
  step="증감값" var="변수명">
    반복 실행 문장;
  </c:forEach>

<c:forEach items="객체명" var="변수명"> ==>단축for문과 유사 (객체->배열)

7. 문자열을 잘라주는 태그 ==> StringTokenizer 클래스
<c:forTokens items="문자열" delims="문자열 구분자" var="변수명">
반복해서 문자열을 잘라주는 문장;
</c:forTokens>
 --%>

 

 

 

 

<%--
포맷팅 라이브러리 종류
- <fmt:formatNumber> : 표시할 숫자의 형식을 지정하는 태그
- <fmt:timeZone> : 지정한 국가의 시간을 지정하는 태그
       태그를 열고 닫는 영역에서만 적용이 됨
- <fmt:setTimeZone> : 지정한 국가의 시간을지정하는 태그
- <fmt:formatDate> : 지정한 형식의 날짜를 표시하는 태그
 --%>

<%--
<fmt:formatNumber> 태그의 여러 가지 속성
- value : 출력의 형식을 지정함
- type : 출력될 타입을 지정함
 * percent : %
 * number : 숫자
 * currency : 통화형식
- currencyCode : 통화코드를 지정함. 한국의 원화는 KRW임.
- currencySymbol : 통화를 표시할 때 사용할 기호를 표시함
- var : <fmt:formatNumber> 태그의 결과를 저장할 변수의 이름을 지정
- scope : 변수의 접근 범위를 지정함
- pattern : 숫자가 출력될 양식을 지정함
 --%>

 

<%-- 
<fmt: formatDate> 태그의 여러 가지 속성
- value : 포멧팅될 날짜를 지정하는 속성
- type : 포맷팅할 타입을 지정하는 속성
  * date : 날짜를 지정
  * time : 시간을 지정
  * both : 날짜 / 시간을 모두 지정
- dateStyle : 날짜의 출력 양식을 지정하는 속성
     값에는 full, long, medium, short 등을 지정할 수 있음
- timeStyle : 시간 출력 양식을 지정하는 속성
- pattern : 직접 출력 양식을 지정하는 속성
- timeZone : 특정 나라 시간대로 설정하는 속성
 --%>

 

 

'JSP' 카테고리의 다른 글

23.03.15 DBCP  (0) 2023.03.15
23.03.07  (0) 2023.03.07
23.03.06(get, post, servlet mapping)  (0) 2023.03.06

댓글