Joslynn의 하루

MSA Full-Stack 개발자 양성 과정 - JSP 표현언어(EL)&JSTL_221006 본문

MSA Full-Stack 개발자 양성과정/JSP&Servlet

MSA Full-Stack 개발자 양성 과정 - JSP 표현언어(EL)&JSTL_221006

Joslynn 2022. 10. 6. 11:31

표현언어(EL - Expression Language)

:  jsp 2.0 새롭게 추가된 스크립요소
: 자바 빈즈 속성값을 보다 쉽고 제약을 덜 받는 방법으로 사용하기 위해 나옴.

: 기본문법
      - 표현언어는 $시작한다.
      - 모든 내용은 {표현식} 으로 구성된다.
      - 표현식에는 기본적으로 변수명 혹은 속성명.메소드 구조로 이루어짐.
      - 표현식에는 정수형, 실수형, 문자열형, 논리형, null 올수있음.
      - 표현식 연산가능함.

 

: 표현언어 연산자
     - 산술연산자
         + ,- , *, /(div) , %(mod)
        ex) ${10 div 2}

    -관계연산자
      ==(eq) , !=(ne) , >(gt) , <(lt) , >=(ge) , <=(le)
       ex) ${5 gt 2}
   
    - 조건연산자
      조건식 ? 참 : 거짓
     
   - 논리연산자
      &&(and),  ||(or) , !(not)

: 표현언어 내장객체
    -pageScope : page기본객체에 저장된 속성
    -reqeustScope : reqeust기본객체에 저장된 속성
    -sessionScope : session기본객체에 저장된 속성
    -applicationScope : application기본객체에 저장된 속성

     -Scope 영역 ( setAttribute() / getAttribute() ) 
     page< request < session < application

     ex) <%=session.getAttriubte("id")%>님
          ${sessionScope.id}님 → ${id} (id 충돌나지 않을 때)

    -param  : 요청 prameter의 name에 해당하는 값 가져옴
              ex) ${param.name}  = (request.getParameter("name"); ) 

    -pageContext : JSP page 기본객체

  * <jsp:useBean id="bean" class="gaon.EL.ProductBean" />
    ex) ${bean.num1}  : bean객체의 getNum1()호출됨.

 


Jsp Standard Tag Library

: jsp에서 표준으로 자주사용하는 부분을 미리 태그로 만들어
      놓은것.
 : 종류
   코어(core), XML, I18N(국제화) , 데이터베이스(sql), 함수(function)

 

: jsp문서에서 JSTL을 사용하기 위한 선언방법

   <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
   <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

   
   
: 자주사용하는 코어 JSTL 태그
  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

 

1. <c:out value="값 | 변수명" escapeXml="true|false" />
       escapeXml="true" 는 값에 태그 있으면 문자로 출력됨.

 

2. <c:set var="이름" value="값" scope="page|request|session|application" />

: 주의사항: value의 값은 무조건 String
          (ex) value="${20}" == 숫자 20
                 value="${'20'}" == 문자 20 
                 value="20"  == 문자 20 

: Xxx.setAttribute(id, value); 의 역할을 대신함

 

<%
	String name = "희정";
    
	//Xxx.setAttribute("name", "희정");
	//out.println(name); //setAttribute를 하지 않으면 출력 불가
%> 

//<%=name%>  

<% String name="희정" %>

 

 

3. <c:remove var="이름" />

4. <c:catch var="이름">
        //예외발생 가능성 코드
     </c:catch>
  
5. <c:if>

<c:if test="조건식" var="결과저장할이름" >
        //결과가 true일때 실행문장
</c:if>

 

6. <c:choose>

<c:choose>
      <c:when test="조건식"> 실행문장 </c:when>
      <c:when test="조건식"> 실행문장 </c:when>
      <c:when test="조건식"> 실행문장 </c:when>
      ....
      <c:otherwise> 위조건이외의 경우 실행문장 </c:otherwise>
</c:choose>

 

 

 7. <c:forEach var="이름" begin="시작" end="끝" step="단계"
     items="항목" varStatus="현재상태에대한값" >
     
     ${상태나타내는변수.index}
     ${상태나타내는변수.count}
     ${이름}
  
   </c:forEach>


 8. <c:forTokens item="데이터" delims="구분자" var="이름">
        ${이름}
    </c:forTokens>


 9. <c:import uri="파일명" var="이름" />


 10. <c:url value="URL주소" var="이름" />

     <c:url value="URL주소" var="이름" >
         <c:param name="이름"> 값 </c:param>
     </c:url>

    ex) <a href="${이름}" >클릭</a>
   

 11. <c:redirect uri="" >
         <c:param name="이름"> 값 </c:param>
     </c:redirect>

 

Comments