Programming/Back-end(Java, JSP)

[JSP] EL(Expression Language) 용법, 연산자

Sujin Lee (Daisy) 2020. 4. 5. 01:08

<EL> 

     - 화면에 출력하는 언어
     - 사용법: ${출력물}
     - ${}안에 일반 자바 변수가 들어가는게 아니다!! <==> <%=일반 자바변수 %>
     - ${}안에 들어가는 것들의 유형
       1) 파라미터 이름                          
             getParameter("para_name") => ${param.para_name}
             ex) getParameter("id") => ${param.id}               
       2) request의 key값(속성명)
             request.getAttribute("key") => ${requestScope.key} => ${key}
                ex)  request.getAttribute("id") => ${requestScope.id} => ${id}
             ====> ${id} 처럼 쓰려면, request에 있어야만 이렇게 쓸 수 있다.  
          ex) String id="admin"; ==> ${id} (X) // 이렇게 쓰는 것 불가! 일반 자바변수는 불가능!
                 request.setAttribute("id",id) ==> ${id} (O) // request의 key니까 사용 가능
                참고) session.setAttribute(key, value)                  
       3) session의 key값 (속성명)
          session.getAttribute("key") ==> ${sessionScope.key} => ${key}
          // 참고) session.getAttribute(key)
               
               참고) 우선순위: request > session
               request.setAttribute("id", "admin");
               session.setAttribute("id", "hong");
               ${id} ==> admin
                   // 우선순위가 request가 session보다 더 높으므로, ${id}하면 request의 id값을 가져온다.
               ${sessionScope.id} ==> hong
                   // hong을 가져오고 싶다면 ${id} 이렇게는 불가능하고 (우선순위에서 밀렸으니까)
                   // ${sessionScope.id} 해서 가져와야 한다.


<EL을 사용한 연산처리>

    ${연산자}
    
    1. 산술연산자 +,-,*,/(div),%(mod)
     - JAVA의 +: 덧셈, 문자열 결합
     - JSP EL의 +: 덧셈만. (문자열 결합X)
           ※ JSP EL의 문자열 결합: '+=' 사용
         ex) ${"Hello, "+="world" }
    
    2. 비교연산자 ==, eq, !=, ne <,>,<=,>=
     - 결과값: true/false
     1) ==, eq
      - 문자열 or 숫자가 같다  
         ex) ${requestScope.id=='admin'}
         ex) ${requestScope.id eq 'admin'}
     2) !=, ne
      - 문자열 or 숫자 가 같지 않다
      - ne: not equal
        ex) ${requestScope.id!='admin'}
        ex) ${requestScope.id ne 'admin'}
     3) <, lt
      - lt: less than
     4) >, gt
      - gt: greater than
     5) <=, le
      - le: less than or equal to
     6) >=, ge
      - ge: greater than or equal to
      
    3. 논리연산자 &&,and,||,or,!,not
     - 결과값: true/false
    
    4. empty 연산자
     - ArrayList에 값이 있는지 없는지의 여부를 확인
     - null 또는 ""(빈 공백)이면 true를 리턴한다.
     - 결과값: true/false
     - ex) ${empty list}  
    
    5. 삼항연산자
     - 형식: ${조건?true일때값:false일때값}
    
    6. 문자열 결합 연산자 +=
       ex) ${"Hello, "+="world" }

반응형