JSTL과 EL : EL태그 연산자

EL태그로 연산하기

  • 특징 : EL 표현식은 연산자가 있으면 전달받은 데이터 자동으로 숫자형으로 캐스팅함.
  • operator1.jsp의 숫자 정보를 입력받아서 다음 페이지operator2.jsp로 넘기고 다음페이지operator2.jsp에서 해당 연산을 구현해보자.




공통코드 : operator1.jspoperator2.jsp 생성

  1. operator1.jsp 코드

    1
    2
    3
    4
    5
    6
    7
    <fieldset>
    <form action="operator2.jsp">
    숫자1 : <input type="text" name="num1"><br>
    숫자2 : <input type="text" name="num2"><br>
    <input type="submit" value="전송">
    </form>
    </fieldset>
  2. operator2.jsp코드

    • core 라이브러리 추가
      1
      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>




EL 표현식 사용해서 전달받은 정보 출력

1
2
숫자1 : ${param.num1}<br>
숫자2 : ${param.num2}<br>




EL 표현식을 사용해서 전달받은 2개의 값 합 출력

  • 파라미터는 String타입인데 어떻게 EL태그에서 바로 연산이 될까?
    • EL 표현식은 전달받은 데이터 자동 캐스팅때문!
1
숫자1 + 숫자2 = ${param.num1+param.num2}<br>




EL 표현식을 사용해서 전달받은 2개의 값이 모두 양수인가?

1
2
3
<c:if test="${(param.num1 > 0) && (param.num2 > 0)}">
모두 양수입니다<br>
</c:if>




EL 표현식 사용해서 삼항조건연산 처리

  • 전달한 두 개의 데이터가 같으면 “같다”출력, 다르면 “다르다”출력
1
${(param.num1 == param.num2) ? "같다" : "다르다" }




EL 표현식 사용해서 아이디값이 있는지 확인하기

  • 값이 null이거나 컬렉션의 크기가 0인지 체크 => empty(리턴타입boolean)사용
  • operator1.jsp페이지에서 ID값 전달,
  • ID가 없을 경우 게스트님, 환영합니다
  • ID가 있는 경우, 해당id님 환영합니다
1
${empty param.id ? "게스트" :param.id }님 환영합니다

Comments