EL ( Expression Language )
- EL이란 JSP에서 저장객체를 출력할때 스크립팅을 전혀 쓰지 않을 수 있는 기술이다.
- EL은 일종의 스크립트 언어로 자료 타입, 수치 연산자, 논리 연산자, 비교 연산자 등을 제공하며 표현식을 대체할 수 있 습니다.
EL의 내장객체
JSTL ( JSP Standard Tag Library )
- JSP의 경우 HTML태그와 같이 사용되어 전체적인 코드의 가독성이 떨어진다.
- 이 단점을 보완하고자 만들어진 것이 JSTL이다.
- JSTL을 사용하면 자바의 제어문을 HTML 태그화 할 수 있다.
- JSTL의 경우 우리가 사용하는 Tomcat 기본 컨테이너에 포함되어 있지 않으므로, 별도의 라이브러리를 설치하고 사용
기준: <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
아래 태그들 앞에 c인 이유는 prefix가 "c"이기 때문이다.
태그 | 설명 |
c:catch | 예외처리에 사용 |
c:out | t JspWriter에 내용 출력 |
c:set | JSP 에서 사용될 변수 설정 |
c:remove | 설정한 변수 제거 |
c:if | 조건처리 |
c:choose | 다중 조건 처리 |
c:forEach | 컬렉션이나 Map 의 각 항목 처리 |
c:forTokens | 구분자로 분리된 각각의 토큰을 처리할 때 사용 |
c:when | 조건에 맞을 때(if) |
c:otherwise | 맞는 조건이 없을 경우(else) |
c:import | URL 을 사용하여 다른 자원의 결과를 삽입 |
c:redirect | URL 을 재작성 |
c:param | 파라미터 설정 |
JSTL Core Library 사용 방법
- Core 라이브러리는 기본적인 라이브러리로 출력, 제어문, 반복문 같은 기능이 포함되어 있다.
- 코어 라이브러리를 사용하기 위해서 반드시 JSP 파일 내의 지시자 태그이다.
JSTL 사용하기
<body>
<h3>if문 확인하기</h3>
<form action="jstl_if.jsp" method="post">
이름:<input type="text" name="name">
나이:<input type="number" name="age">
<input type="submit" name="value">
</form>
<h3>choose문 확인하기</h3>
<form action="jstl_choose.jsp" method="post">
이름:<input type="text" name="name">
나이:<input type="number" name="age">
점수:<input type="number" name="score">
<input type="submit" name="value">
</form>
</body>
- jstl_if.jsp
- 이름이 이순신이면, '이순신입니다' 출력
- 이름이 홍길동이면, '홍길동입니다' 출력
- 이름이 홍길동이고, 나이가 20세 이상이라면 '성인입니다' 출력
<body>
<!-- if -->
<c:if test="${param.name eq '이순신' }">
<b>이순신입니다</b>
</c:if>
<c:if test="${param.name eq '홍길동' }">
<b>홍길동입니다</b>
</c:if>
<h3>이름이 홍길동이고, 나이가 20세 이상이라면 "성인입니다" 출력</h3>
<c:if test="${param.name eq '홍길동' and param.age >= 20 }">
<b>성인입니다</b>
</c:if>
</body>
- jstl_choose.jsp
- 이름이 이순신이면, '이순신입니다' 출력
- 이름이 홍길동이면, '홍길동입니다' 출력
- 그 외의 경우, 홍길동, 이순신이 아닙니다 출력
<body>
<!-- when절은 if, when절 추가하면 else if, otherwise는 else -->
<c:choose>
<c:when test="${param.name eq '홍길동' }">
홍길동입니다
</c:when>
<c:when test="${param.name eq '이순신' }">
이순신입니다
</c:when>
<c:otherwise>
홍길동, 이순신이 아닙니다
</c:otherwise>
</c:choose>
</body>
중첩 if문
choose를 사용해서 score이 90점 이상이면 A, 80 이상이면 B, 나머지는 F 출력
단! 중첩구문을 이용하여 95점 이상일 때는 A+, 90~94까지는 A로 출력
<c:choose>
<c:when test="${param.score >= 90 }">
<c:choose>
<c:when test="${param.score >= 95 }">
점수 : ${param.score } <br>
학점 : A+
</c:when>
<c:otherwise>
점수 : ${param.score } <br>
학점 : A
</c:otherwise>
</c:choose>
</c:when>
<c:when test="${param.score >= 80 }">
점수 : ${param.score } <br>
학점 : B
</c:when>
<c:otherwise>
점수 : ${param.score } <br>
학점 : F
</c:otherwise>
</c:choose>
반복문(구구단 출력)
<h3>구구단 1단~9단까지 JSTL로 출력하기</h3>
<c:forEach var="i" begin="1" end="9" step="1">
구구단${i }단 <br> <hr>
<c:forEach var="j" begin="1" end="9" step="1">
${i } X ${j }= ${i * j}<br>
</c:forEach>
<br>
</c:forEach>
728x90
'Programming > JSP' 카테고리의 다른 글
[JSP] Connection Pool (0) | 2024.05.06 |
---|---|
[JSP] MVC 패턴 (0) | 2024.05.06 |
[JSP] JDBC (0) | 2024.05.06 |
[JSP] Action Tag, 액션 태그 (0) | 2024.05.06 |
[JSP] 예외 페이지 (0) | 2024.05.06 |