본문 바로가기
Programming/JSP

[JSP] EL / JSTL

by 공부합시다홍아 2024. 5. 6.
 

[JSP] Connection Pool

[JSP] MVC 패턴MVC 패턴MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다.MVC 패턴은 Model, View, Controller로 구성되어 있

hong-study.tistory.com


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