jstl-1.2.jar download
해당 프로젝트 > WebContent > WEB-INF > lib 붙여넣기
core
선언
.jsp 상단에 붙여넣기
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set > 태그
<c:set var = "변수명" value="<%=츨력값%>"/>
- 출력시 EL 태그 (${변수명}) 이용해서 출력한다
예시
<%@ 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>Insert title here</title>
</head>
<body>
<%
String test1 = "test1";
%>
<c:set var = "test1" value ="<%=test1%>"/>
EL이용해서 출력 : ${test1}
</body>
</html>
<c:forEach> 태그
items : 배열, Collection, Map
var : 변수
stat.index : 0 부터 시작
stat.count : 1부터 시작
<c:forEach var="변수명" begin="시작인텍스" end = "끝 인덱스">
</c:forEach>
<c:forEach var="변수명" items="${Collection객체}" varStatus="반복 상태 알수 있는 변수">
</c:forEach>
예시
<%@ 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>Insert title here</title>
</head>
<body>
<!-- c:forEach 이용해서 0~10출력 -->
<c:forEach var="num" begin="0" end = "10">
${num}
</c:forEach>
</body>
</html>
VO이용한 예시
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ page import="java.util.List"%>
<%@ page import="kr.or.ddit.dao.ProductRepository"%>
<%@ page import="kr.or.ddit.vo.ProductVO"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
ProductRepository productDAO = ProductRepository.getInstace();
List<ProductVO> productVOList = productDAO.getAllProducts();
%>
<!-- 변수명 : productVOList , 출력값 : List<ProductVO> productVOList = productDAO.getAllProducts(); -->
<c:set var = "productVOList" value="<%=productVOList%>"></c:set>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="/css/bootstrap.min.css" />
<title></title>
</head>
<body>
<!-- include 액션태그 -->
<jsp:include page="menu.jsp"/>
<div class="jumbotron">
<div class="container">
<h1 class = "display-3">상품목록</h1>
</div>
</div>
<!--상품목록 출력 -->
<div class="container">
<div class = "row" align = "center">
<!--변수명 : productVO, item : ArrayList 지정한 productVOList -->
<c:forEach var="productVO" items="${productVOList}" varStatus="stat">
<div class="col-md-4">
<!-- //images/P1234.jpg -->
<img src="/images/${productVO.filename}"
alt="${productVO.pname}">
<h3>${productVO.pname}</h3>
<p>${productVO.description} </p>
<p>${productVO.unitPrice} </p>
</div>
</c:forEach>
</div>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>
<c:if>태그
<c:if test="${fn:조건문}">
//true 경우
</c:if>
예시
<% //스크립틀릿
//시큐리티의 사용자명을 가져옴
String username = request.getRemoteUser(); //사용자 이름 가져옴
// out.print("username :" + username+"<br/>");
%>
<c:set var="username" value="<%=username %>" />
<c:if test="${fn:length(username)>0}">
${username}님 환영합니다. |
<a href="/logout.jsp" class="btn btn-sm btn-success pull-right">logout</a>
</c:if>
<c:url>태그
- URL에 자동으로 Context Path를 붙여주는 일합니다.
- 컨텍스트를 변경하더라도 URL을 수정할 필요가 없게 되는 것입니다.
- 다른 페이지로 이동하면서 데이터를 전달함.따라서 이동할 페이지로 전달할 데이터가 많을 경우 사용하면 편리함
<a href="<c:url value='/userSearch.do?name=홍길동&page=3' />">3 페이지</a>
fn
- length 구할 때 사용
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
예시
<c:if test="${fn:length(cartlist) == 0}">
<tr>
<td colspan="5" style="text-align: center;"> 장바구니에 상품이 없습니다.</td>
</tr>
</c:if>
fmt
- 형식 변환
선언
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatNumber value="변환할 값" pattern="#,###"/>
예시
<fmt:formatNumber value="${productVO.unitPrice}" pattern="#,###"/>
tiles
- definition 포함한 put-attribute name으로 jsp 불러오는 방법 호출하는 태그
선언
<%@ taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles"%>
<tiles:insertAttribute name="put-attribute_name"/>
예시
<tiles:insertAttribute name="header"/>
sec
security 관련 JSTL 태그
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
사용 예시
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<div class="login-box" style="margin:0 auto;">
<div class="card">
<div class="card-body login-card-body">
<p class="login-box-msg">Sign in to start your session</p>
<form action="/login" method="post">
<div class="input-group mb-3">
<!-- 아이디 -->
<input type="text" name="username" id="username" class="form-control" placeholder="아이디">
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-envelope"></span>
</div>
</div>
</div>
<div class="input-group mb-3">
<input type="password" name="password" id="password" class="form-control" placeholder="비밀번호"/>
<div class="input-group-append">
<div class="input-group-text">
<span class="fas fa-lock"></span>
</div>
</div>
</div>
<div class="row">
<div class="col-8">
<div class="icheck-primary">
<input type="checkbox" id="remember"> <label
for="remember"> Remember Me </label>
</div>
</div>
<div class="col-4">
<button type="submit" class="btn btn-primary btn-block">Sign In</button>
</div>
</div>
<!-- csrf: Cross Site Request Forgery -->
<sec:csrfInput/>
</form>
</div>
</div>
</div>
'JAVA > JSP' 카테고리의 다른 글
post 보낸 파라미터 확인 방법 (0) | 2024.04.08 |
---|---|
내장객체 (0) | 2024.04.05 |
디렉티브 태그 (0) | 2024.04.05 |
jsp 방문수 횟수 늘리기 (0) | 2024.04.05 |
스크립트 태그의 종류 (0) | 2024.04.03 |