728x90
커스텀태그
커스텀태그는 사용자 지정 태그라고도 부르며 개발자가 원하는 목적에 맞게 작성한 태그를 의미합니다.
커스텀태그의 장점
- 재사용 : 한 번 작성한 커스텀 태그는 어떤 JSP 컨테이너에서도 사용 가능합니다.
- 쉽고 단순한 JSP코드 작성 : 자바코드에 익숙하지 않은 개발자들도 커스텀 태그를 사용하면 쉽게 JSP페이지를 작성할 수 있게 됩니다.
- 코드 가독성 향상 : 커스텀 태그는 뚜렷한 의도를 가지고, 커스텀 태그를 사용하면 스크립트 코드를 줄일 수 있기 때문에 JSP코드의 가독성을 높일 수 있습니다.
커스텀태그 사용방법
태그 파일은 src/main/webapp/WEB-INF/tags 디렉터리 또는 그 하위 디렉터리에 위치합니다. 이 디렉터리에 위치한 파일 중 .tag 확장자나 .tagx 확장자를 가지는 파일만 태그파일로 인식됩니다.
<%@ taglib tagdir="/WEB-INF/tags" prefix="jun" %>
jsp파일에서 태그 라이브러리로 태그 파일 위치와 태그 파일 참조를 명시합니다. tagdir 속성을 사용하여 태그 파일이 위치한 디렉터리의 경로를 입력합니다.
<jun:b_main_header/>
<jun:d_board_content/>
태그파일의 이름은 커스텀 태그의 이름이 됩니다.
실습
실습 1
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.BoardVO,java.util.ArrayList" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="jun" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>메인</title>
</head>
<body>
<script type="text/javascript">
function check(){
var ans=prompt('비밀번호를 입력하세요.');
location.href='controller.jsp?action=mypage&mpw='+ans;
}
</script>
<jun:b_main_header/>
<hr>
<table border="1">
<tr>
<th>글 번호</th><th>글 제목</th><th>작성자</th>
</tr> <!-- xxx.getAttribute() / request.getParameter() -->
<c:forEach var="v" items="${ datas }">
<tr>
<td><a href="controller.jsp?action=board&num=${ v.num }">${ v.num }</a></td>
<td>${ v.title }</td>
<td>${ v.writer }</td>
</tr>
</c:forEach>
</table>
<br>
<c:if test="${ not empty mid }">
<a href='controller.jsp?action=insertBoardPage'>게시글 작성</a>
</c:if>
</body>
</html>
실습 2
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import="model.BoardVO" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="jun" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>상세 페이지</title>
</head>
<body>
<script type="text/javascript">
function delBoard(){
var ans=confirm('정말 삭제할까요?');
if(ans==true){
document.form.action.value='deleteBoard';
document.form.submit();
}
}
</script>
<jun:d_board_content/>
<br>
<a href="controller.jsp?action=main">메인으로 돌아가기</a>
</body>
</html>
GitHub
https://github.com/Qkrwnsgus0522/JSP
728x90