BackEnd/WEB

국비_DAY45

Leo.K 2022. 5. 3. 13:14

JSP를 사용하여 레이아웃 구성하기 

큰틀만 만들어 두고, 그 틀에 해당하는 내용은 문서화시킨다. 

header, aside, content, footer등 레이아웃의 구성요소를 폴더에 문서화하여 사용하면 추후에 유지보수가 용이합니다.

<%@include file=" ~~~ "%> 이와 같은 형식으로 문서를 불러온다. html에서는 불가능하고, jsp에서만 지원한다.

 

main_company.jsp -> 전체 레이아웃의 큰 틀 잡기 

header.jsp -> 폴더화해서 include로 main_menu폴더내 header영역에 포함시킨다. 

menu.jsp -> header영역에 표현되므로, 파일을 폴더화해서 include로 header파일에  포함시킨다.

이렇게 영역별로 문서화시켜서 분리하고, include 명령으로 하나의 파일에 문서자체를 포함시키면 원본 파일의 위치는 다르지만 결론적으로 하나의 문서로 조립되는 것입니다. 따라서 css를 한 군데에(메인파일 main_company.jsp) 모아서 사용해도 적용이 됩니다. 

a태그에 href속성을 사용하여 페이지를 이동하는 효과를 받을 수 있습니다.

위의 main_company.jsp의 내용을 복사해서 aside에 나타나는 sub_menu.jsp내용만 수정하면, 새로운 페이지를 불러오면서 내용이 바뀌는 효과를 볼 수 있습니다.

[전체 레이아웃]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%@ 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>
<link rel="stylesheet" href="css/main.css">    <!-- 전체 CSS -->
<link rel="stylesheet" href="css/main_menu.css"> <!-- 메뉴 CSS --> <!-- 실제 menu파일은 다른 곳에 문서화되어 저장되어 있지만, include로 조립하면서 한 문서로 만들었기 때문에 여기에 link를 걸어도 css가 적용됩니다. -->
<link rel="stylesheet" href="css/sub_menu.css"> <!-- 메뉴 CSS -->
 
</head>
<body>
    <div id="main_box">
        <div id="header">
            <!-- 외부파일을 포함시킨다. -->
            <!-- include 명령을 수행하면 한 문서로 결합되는 것이다. -->
            <%@include file="header/header.jsp" %>  <!-- html에서는 안됨, 자바에서 제공하는 명령어 기능이다. -->
        
        </div>     <!-- <header></header> -->
        
        <div id="aside">
            <%@include file="menu/submenu_company.jsp" %>
        </div>     <!-- <nav></nav> -->
        
        <div id="content"></div> <!-- <article></article> -->
        
        <div id="footer">
            <%@include file="footer/footer.jsp" %>
        </div>  <!-- <footer></footer> -->
    </div>
</body>
</html>
cs

 

id속성으로 구분해놓은 영역에 문서화시킨 파일들을 include하여 조립시키면 하나의 문서에서 조작할 수 있습니다.

[전체적인 구성] - 영역별로 include된 파일들을 기준으로 정리했습니다.

  • main_company.jsp,  main_product.jsp,  main_customer.jsp (aside 영역의 서브메뉴를 제외한 나머지의 내용은 동일)
    • header.jsp (헤더 영역의 제목)
      • main_menu.jsp (메인 수평 메뉴)
    • submenu_company.jsp,   submenu_product.jsp,   submenu_customer.jsp (aside영역의 서브 수직 메뉴)
    • footer.jsp  (footer영역의 내용)

 

'BackEnd > WEB' 카테고리의 다른 글

JDBC 미니프로젝트 2일차  (0) 2022.05.05
JSP_국비_DAY46  (0) 2022.05.04
국비_DAY44  (0) 2022.05.02
CSS_국비_DAY43  (0) 2022.04.29
HTML_FORM_TAG_국비_DAY42  (0) 2022.04.28