📌
- kiclayout.jsp 추가
<%-- /jsp3/src/main/webapp/layout/kiclayout.jsp --%>
<!DOCTYPE html>
<html lang="en">
<head>
<title><sitemesh:write property='title' /></title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
<script
src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script
src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.bundle.min.js"></script>
<sitemesh:write property='head' />
</head>
<style>
#center {
text-align: center;
}
#half {
width: 45%;
}
</style>
<body>
<nav class="navbar navbar-expand-sm bg-light navbar-light">
<!-- Brand -->
<a class="navbar-brand" href="#"><img src="${path}/image/logo.png"
width="80%"></a>
<!-- Links -->
<ul class="navbar-nav ">
<li class="nav-item"><a class="nav-link" href="${path}/member/joinForm">회원가입</a></li>
<li class="nav-item"><a class="nav-link" href="${path}/member/loginForm">로그인</a></li>
<!-- Dropdown -->
<li class="nav-item dropdown"><a
class="nav-link dropdown-toggle" href="#" id="navbardrop"
data-toggle="dropdown"> 게시판 </a>
<div class="dropdown-menu">
<a class="dropdown-item" href="${path}/board/list?doardid=1">공지사항</a>
<a class="dropdown-item" href="${path}/board/list?doardid=2">자유게시판</a>
<a class="dropdown-item" href="${path}/board/list?doardid=3">QnA</a>
</div></li>
</ul>
</nav>
<hr>
<sitemesh:write property='body' />
<hr>
<div class="jumbotron text-center" style="margin-bottom: 0">
<p>Footer</p>
</div>
</body>
</html>
📌 SiteMeshFilter.java 내용 추가. (레이아웃 변경)
sitemesh : 프레임워크. 화면의 공통 부분을 코딩한 jsp 페이지를 설정.
1. sitemesh-3.0.1.jar 파일을 /WEB-INF/lib/ 폴더(톰켓에서 쓸 수 있도록 미리 약속되어 있는 폴더)에 복사.
2. SiteMeshFilter 클래스 파일 코딩
- ConfigurableSiteMeshFilter 상속 받음 : sitemesh 설정을 위한 클래스
- addDecoratorPath : 화면의 공통 부분을 코딩한 jsp 파일 설정
/* : 모든 url 요청. jsp2/model1/member/loginForm.jsp
- addExcludedPath("/member/memberimg*") : url이 /member/memberimg로 시작하는 경우 layout.jsp 페이지 적용 안함.
3. layoyt.jsp 코딩
package sitemesh;
import javax.servlet.annotation.WebFilter;
import org.sitemesh.builder.SiteMeshFilterBuilder;
import org.sitemesh.config.ConfigurableSiteMeshFilter;
@WebFilter("/*")
public class SiteMeshFilter extends ConfigurableSiteMeshFilter {
@Override
protected void applyCustomConfiguration(SiteMeshFilterBuilder builder) {
builder.addDecoratorPath("/member/*","/layout/layout.jsp")
.addExcludedPath("/member/memberimg*")
.addExcludedPath("/member/id*")
.addExcludedPath("/member/pw*")
.addExcludedPath("/member/password*");
builder.addDecoratorPath("/board/*","/layout/kiclayout.jsp");
}
}
📌 writeForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%-- /jsp3/src/main/webapp/view/board/writeForm.jsp --%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>게시글 작성하기</title>
</head>
<body>
<div class="container">
<form name="f" action="write" enctype="multipart/form-data" method="post">
<h2 id="center">게시판 입력</h2>
<div class="form-group">
<lable>작성자:</lable>
<input type="text" class="form-control" name="writer" value="${login}">
<lable>비밀번호:</lable>
<input type="password" class="form-control" name="pass">
<lable>제목:</lable>
<input type="text" class="form-control" name="subject">
</div>
<div class="form-group">
<lable>내용:</lable>
<textarea row="10" cols="50" class="form-control" name="content"></textarea>
</div>
<div class="form-group">
<lable>파일저장:</lable>
<input type="file" class="form-control" name="file1">
</div>
<div id="center" style="padding:3px;">
<button type="submit" class="btn btn-dark">입력</button>
</div>
</form>
</div>
</body>
</html>
'수업(국비지원) > JSP' 카테고리의 다른 글
| [JSP] MVC MODEL2 방식 - 게시글 목록(list) (0) | 2023.04.20 |
|---|---|
| [JSP] MVC MODEL2 방식 - 게시판(board, boardController, BoardDao) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 아이디 중복체크(joinForm, idchk) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 비밀번호 변경(passwordForm) (0) | 2023.04.20 |
| [JSP] MVC MODEL2 방식 - 아이디찾기, 비밀번호 찾기(idForm,pwForm, id, pw) (0) | 2023.04.20 |