728x90
반응형
안녕하세요 이번 글에서는 jstl태그들의 사용법을 알아보겠습니다.
1. <c: out>
<c:out> 태그는 생명주기의 속성 값들을 jsp회면에서 사용할 때 사용됩니다.
request.setAttribute("name", "사과씨앗");
서블릿에서 request객체에 위와 같은 속성 값을 세팅하여 줍니다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="com.main.model.Member"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1><c:out value="${name}" /></h1>
</body>
</html>
위 코드처럼 c:out태그의 value에 서블릿에서 보낸 속성의 키값을 el태그를 사용하여 넣어줍니다.
화면과 같은 결과가 출력됩니다.
c:out 태그는 해당 값이 value에 선언한 값이 없을 때 defalut 값을 선언할 수 있습니다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="com.main.model.Member"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1><c:out value="${name2}" default="사과쥬스" /></h1>
</body>
</html>
이렇게 선언하여 봅시다 name2라는 속성은 전달해주지 않았기 때문에 null인 상태입니다.
null값이 들어와서 미리 defalut 값으로 선언한 값이 호출됩니다.
2. <c:forEach>
forEach 태그는 반복문이 필요할 때 사용됩니다.
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//한글깨짐 방지
request.setCharacterEncoding("UTF-8");
ArrayList<String> list = new ArrayList<String>();
list.add("사과씨앗");
list.add("사과쥬스");
list.add("사과파이");
list.add("사과쨈");
list.add("사과사과");
list.add("사과김치");
request.setAttribute("list", list);
RequestDispatcher view = request.getRequestDispatcher("view/next.jsp");
view.forward(request, response);
}
서블릿에서 배열을 하나 선언하여 보내줍시다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="com.main.model.Member"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tbody>
<!--var = 배열안에 값들을 받을 변수 items = request객체에 담아서 보낸 배열 -->
<c:forEach var="object" items="${list }">
<tr>
<td>${object}</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
위처럼 코딩하여 준 뒤 실행시켜 보면
배열의 값이 출력되는 것을 확인할 수 있습니다.
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@page import="com.main.model.Member"%>
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<table>
<tbody>
<!--var = 배열안에 값들을 받을 변수 items = request객체에 담아서 보낸 배열 -->
<c:forEach var="object" items="${list }" varStatus="objectCount">
<tr>
<td>${object}</td><td>${objectCount.count }</td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
varStatus를 사용하게 되면 카운트에 대한 변수를 구할 수 있습니다.
다음 글에서는 <c:if>, <c:set> 등에 대해서 알아보겠습니다.
감사합니다.
728x90
반응형