Java

[JSP] JSP Fragment (프래그먼트)

ride-dev 2024. 1. 1. 02:21

웹 페이지를 만들다보면 네비게이션 바, 푸터, 헤더 등 중복되는 부분이 생길 수 있습니다.

JSP Fragment 구현을 통해,

다른 JSP에서 이를 추가하여 코드를 간소화할 수 있습니다.

패키지 구성

Fragment를 모아놓을 패키지를 만들고,

Fragment로 사용할 JSP Fragment 파일을 생성합니다.

확장자명은 jspf 입니다.

.jspf 파일 생성

taglib 및 bootstrap을 사용한다면, header.jspf와 footrt.jspf를 다음과 같이 구성할 수 있습니다.

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<html>
<head>
    <link href="webjars/bootstrap/5.2.3/css/bootstrap.min.css" rel="stylesheet">
    <link href="webjars/bootstrap-datepicker/1.10.0/css/bootstrap-datepicker.standalone.min.css" rel="stylesheet">

    <title>Manage Your Todos</title>
</head>
<body>
<script src="webjars/bootstrap/5.2.3/js/bootstrap.min.js"></script>
<script src="webjars/jquery/3.6.4/jquery.min.js"></script>
<script src="webjars/bootstrap-datepicker/1.10.0/js/bootstrap-datepicker.min.js"></script>
</body>
</html>

만약 Navigation bar를 사용한다면 navigation.jspf 파일을 아래와 같이 생성할 수 있습니다.

<nav class="navbar navbar-expand-md navbar-light bg-light mb-3 p-1">
    <a class="navbar-brand m-1" href="https://ride-dev.tistory.com">ride</a>
    <div class="collapse navbar-collapse">
        <ul class="navbar-nav">
            <li class="nav-item"><a class="nav-link" href="/">Home</a></li>
            <li class="nav-item"><a class="nav-link" href="/list-todos">Todos</a></li>
        </ul>
    </div>
    <ul class="navbar-nav">
        <li class="nav-item"><a class="nav-link" href="/logout">Logout</a></li>
    </ul>
</nav>

jspf 참조

앞서 생성한 jspf 파일을 참조합니다.

 

welcome.jsp

<%@include file="common/header.jspf"%>
<%@include file="common/navigation.jspf"%>

<div class="container">
    <h1>Welcome</h1>
    <a href="list-todos">Manage</a> your todos
</div>

<%@include file="common/footer.jspf"%>

파일 참조 경로 기준은, 작업중인 파일을 기준으로 합니다.

 

예제의 파일 구성은 아래와 같습니다.

L common

    L footer.jspf

    L header.jspf

    L navigation.jspf

welcome.jsp

 

welcome.jsp와 common 디렉토리가 같은 경로에 있고,

common 디렉토리에 jsp fragment 파일이 모여있습니다.

결론

JSP fragment는 웹 애플리케이션 개발에서 코드의 재사용성과 유지보수성을 향상시키는 강력한 기술 중 하나입니다.

페이지의 일부를 모듈화하고,

재사용 가능한 코드 조각을 만들어 활용하는 것을 통해,

코드의 가독성을 높이고 개발 생산성을 향상시킬 수 있습니다.

728x90