AR삽질러

JSP - JSTL(JSP Standard Tag Library) 본문

JAVA/JSP

JSP - JSTL(JSP Standard Tag Library)

아랑팡팡 2023. 3. 12. 02:42
728x90

1. JSTL이란

- JSTL(JSP Standard Tag Library)은 JSP에서 자주 사용되는 일반적인 태그들을 미리 정의하여 제공하는 라이브러리입니다. JSTL은 JSP 코드를 간결하게 만들어주며, 재사용성을 높이고 유지보수를 용이하게 합니다.

 

2. JSTL 태크의 종류

JSTL은 core, fmt, sql, xml, 함수 등 다양한 기능을 제공합니다.

  • core 태그: 변수 처리, 조건문, 반복문, URI관리 등 기본적인 제어문 기능을 제공
  • sql 태그: DB 연동을 위한 기능을 제공
  • xml 태그: XML 문서를 처리할 수 있는 기능을 제공, XML코어. XML변환, 흐름제어
  • 함수 태그: 문자열 처리, 수학 함수, 컬렉션처리, String처리 등을 포함한 다양한 함수를 제공

JSTL을 사용하면 JSP 코드를 간결하게 작성할 수 있고 코드의 가독성과 유지보수성을 높일 수 있다. JSTL을 사용하면 Java 코드의 중복을 피할 수 있으므로 코드의 재사용성도 높일 수 있다.

 

 

3. JSTL 태그 사용

public class MemberVO {
	private String name;
	private String email;
	private int age;
	
	public MemberVO() {}
	public MemberVO(String name, String email, int age) {
		super();
		this.name = name;
		this.email = email;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<jsp:useBean id="vo" class="jstl.MemberVO"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:set target="${vo }" property="name" value="AR삽질러"/>
<c:set target="${vo }" property="email">
AR삽질러@tistort.com
</c:set>
<c:set var="age" value="30"/>
<c:set target="${vo }" property="age" value="${age }"/>
<h1>회원정보</h1>
<HR>
<ul>
	<li>이름 : ${vo.name }</li>
	<li>이메일 : ${vo.email }</li>
	<li>나이 : ${vo.age }</li>
</ul>
</body>
</html>

4. <c:remove>태그 : 특정 scope에 저장된 속성을 삭제할 수 있다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL Remove</title>
</head>
<body>
<h1>Browser 변수값 설정</h1>
<hr>
<c:set var="browser" value="${header['User-Agent'] }"/><br>
<c:out value="${browser }"/><p>
<h1>Browser 변수값 제거 후</h1>
<hr>
<c:remove var="browser"/>
<c:out value="${browser }"/>
</body>
</html>

 

5. <c:import>태크 : 요청이 들어왔을때 url속성에 파일을 현재 컨텐츠에 포함시킨다.

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:import url="/sample/first.jsp" var="url"/>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL Import</title>
</head>
<body>
${url }
</body>
</html>

 

6. if 태그 : <c:if test="&{조건식}"> 조건식이 참일때 수행한다.</c:if>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL Test</title>
</head>
<body>
<c:if test="${3 > 4 }">
이 내용은 화면에 나타나지 않습니다.
</c:if>

<c:if test="${param.type eq 'guest' }">
<h1>홈페이지 방문을 환영합니다.</h1><br>
짝 짝 짝 짝 짝 짝 짝 짝
</c:if>

<c:if test="${param.type eq 'member' }">
<h1>회원님의 방문을 환영합니다.</h1><br>
쿵 쿵 쿵 쿵 쿵 쿵 쿵 쿵
</c:if>

</body>
</html>

7. <c:choose> <c:when> <c:otherwise> 태그를 통한 if else else if 처리

<c:choose>
	<c:when test="{조건식1}" 조건식 1이 참인경우 수행 </c:when>
	<c:when test="{조건식2}" 조건식 2가 참인경우 수행 </c:when>
	<c:otherwise>조건식 1과 조건식2를 모드 만족하지 않는 경우 수행</c:otherwise>
</c:choose>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
	int score = 85;
	request.setAttribute("score", score);
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Choose, When, Otherwise EX</title>
</head>
<body>

<c:choose>
	<c:when test="${score ge 90}">
		성적 A!
	</c:when>
	<c:when test="${score ge 80}">
		성적 B! 
	</c:when>
	<c:when test="${score ge 70}">
		성적 C! 
	</c:when>
	<c:when test="${score ge 60}">
		성적 D! 
	</c:when>
	<c:otherwise>
		성적 F!
	</c:otherwise>
</c:choose>

</body>
</html>

8. foreach태그 : 배열과 컬렉션 데이터

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<%
	String[] poketmonList = {"피카츄", "이상해씨", "파이리", "꼬북이"};
	request.setAttribute("poketmonList", poketmonList);
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL Foreach Tag</title>
</head>
<body>
<h1>My Poketmon</h1>
<hr>
<ul>
	<c:forEach var="poketmon" items="${poketmonList }">
		<li>${poketmon }</li>
	</c:forEach>
</ul>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page import="java.util.ArrayList, jstl.MemberVO" %>
<%
	MemberVO vo1 = new MemberVO("리자몽", "rija@tistory.com", 19);
	MemberVO vo2 = new MemberVO("거북왕", "gaga@tistory.com", 15);
	MemberVO vo3 = new MemberVO("이상해꽃", "risan@tistory.com", 20);
	ArrayList<MemberVO> memberList = new ArrayList<MemberVO>();
	memberList.add(vo1);
	memberList.add(vo2);
	memberList.add(vo3);
	request.setAttribute("memberList", memberList);
%>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL List</title>
</head>
<body>
<h1>포켓몬도감</h1>
<hr>
<table border="1" width="500">
<tr>
	<th width="50">Number</th>
	<th width="100">Name</th>
	<th width="100">Email</th>
	<th width="100">Age</th>
</tr>
	<c:forEach var="member" items="${memberList }" varStatus="num">
		<tr>
			<td align="center">${num.count }</td>
			<td align="center">${member.name }</td>
			<td align="center">${member.email }</td>
			<td align="center">${member.age }</td>
		</tr>
	</c:forEach>
</table>
</body>
</html>

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JSTL List3</title>
</head>
<body>
<h1>List</h1>
<hr>
<c:forEach begin="1" end="10" step="1" varStatus="num">
	${num.count }&nbsp;
</c:forEach>
</body>
</html>

728x90
반응형
LIST

'JAVA > JSP' 카테고리의 다른 글

JSP - Model2  (0) 2023.03.13
JSP - JSTL(JSP Standard Tag Library)(2)  (0) 2023.03.12
JSP - 표현언어(Expression Language)  (0) 2023.03.10
JSP - 파일업로드(자카르타API)  (0) 2023.03.10
JSP - 파일업로드  (0) 2023.03.10