.admin_content_wrap 식별자가 가지고 있는 height 속성을 지우고 min-height 속성을 작성한다. height 속성의 경우 고정된 높이지만, min-height 속성의 경우는 속성 값으로 최소 높이를 설정하여 속성 값보다 높이가 작아지는 것을 방지하면서 그 이상의 높이는 유동적으로 변경될 수 있도록 해준다./* 기존 코드 */
.admin_content_wrap{
    width: 80%;
    float:left;
    height: 100%;  
    height:700px;
}
 
/* 수정 코드 */
.admin_content_wrap{
    width: 80%;
    float:left;
    min-height:700px;
}
../WEB-INF/views경로에 includes/admin 폴더를 생성 후 header.jsp, footer.jsp 파일을 생성한다. 각 파일에 아래의 코드만 남기고 모든 태그 코드를 삭제한다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
admin_content_wrap인 div 태그 이전 코드까지 복사하여 head.jsp 파일에 붙여 넣는다. 
    <div class="wrapper">
        <div class="wrap">
            <!-- gnv_area -->    
            <div class="top_gnb_area">
                <ul class="list">    
                    <li><a href="/main">메인 페이지</a></li>
                    <li><a href="/member/logout.do">로그아웃</a></li>
                    <li>고객센터</li>            
                </ul>
            </div>
            <!-- top_subject_area -->
            <div class="admin_top_wrap">
                <span>관리자 페이지</span>
                
            </div>
            <!-- contents-area -->
            <div class="admin_wrap">
                <!-- 네비영역 -->
                <div class="admin_navi_wrap">
                  <ul>
                      <li >
                          <a class="admin_list_01" href="/admin/goodsEnroll">상품 등록</a>
                      </li>
                      <li>
                          <a class="admin_list_02" href="/admin/goodsManage">상품 관리</a>
                      </li>
                      <lI>
                          <a class="admin_list_03" href="/admin/authorEnroll">작가 등록</a>                            
                      </lI>
                      <lI>
                          <a class="admin_list_04" href="/admin/authorManage">작가 관리</a>                            
                      </lI>
                      <lI>
                          <a class="admin_list_05">회원 관리</a>                            
                      </lI>                                                                                             
                  </ul>
                </div>
admin_content_wrap인 div 태그 다음 코드부터 /body 혹은 script 태그 이전 코드들을 복사 하여 footer.jsp파일에 붙여 넣는다.<div class="clearfix"></div>
            </div>
        
        <!-- Footer 영역 -->
        <div class="footer_nav">
            <div class="footer_nav_container">
                <ul>
                    <li>회사소개</li>
                    <span class="line">|</span>
                    <li>이용약관</li>
                    <span class="line">|</span>
                    <li>고객센터</li>
                    <span class="line">|</span>
                    <li>광고문의</li>
                    <span class="line">|</span>
                    <li>채용정보</li>
                    <span class="line">|</span>
                </ul>
            </div>
        </div> <!-- class="footer_nav" -->
        
        <div class="footer">
            <div class="footer_container">
                
                <div class="footer_left">
                    <img src="../resources/img/civically-1.jpg">
                </div>
                <div class="footer_right">
                    (주) 이름없는 회사    대표이사 : OOO
                    <br>
                    사업자등록번호 : ooo-oo-ooooo
                    <br>
                    대표전화 : oooo-oooo(발신자 부담전화)
                    <br>
                    <br>
                    COPYRIGHT(C) <strong>yoonbitnara.github.io</strong>    ALL RIGHTS RESERVED.
                </div>
                <div class="clearfix"></div>
            </div>
        </div> <!-- class="footer" -->        
        
    </div>    <!-- class="wrap" -->
</div>    <!-- class="wrapper" -->
    <%@include file="../includes/admin/header.jsp" %>
 
    <%@include file="../includes/admin/footer.jsp" %>
<%@ 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="../resources/css/admin/authorEnroll.css">
 
<script
  src="https://code.jquery.com/jquery-3.4.1.js"
  integrity="sha256-WpOohJOqMqqyKL9FccASB9O0KwACQJpFTUBLTYOVvVU="
  crossorigin="anonymous"></script>
</head>
</head>
<body>
 
<%@include file="../includes/admin/header.jsp" %>
                <div class="admin_content_wrap">
                    <div class="admin_content_subject"><span>작가 등록</span></div>
                    <!-- 작가 정보 작성 및 전송 코드 추가 -->
                    <div class="admin_content_main">
                    	<form action="/admin/authorEnroll.do" method="post" id="enrollForm">
                    		<div class="form_section">
                    			<div class="form_section_title">
                    				<label>작가 이름</label>
                    			</div>
                    			<div class="form_section_content">
                    				<input name="authorName">
                    				<span id="warn_authorName">작가 이름을 입력 해주세요.</span>
                    			</div>
                    		</div>
                    		<div class="form_section">
                    			<div class="form_section_title">
                    				<label>소속 국가</label>
                    			</div>
                    			<div class="form_section_content">
                    				<select name="nationId">
                    					<option value="none" selected>=== 선택 ===</option>
                    					<option value="01">국내</option>
                    					<option value="02">국외</option>
                    				</select>
                    				<span id="warn_nationId">소속 국가를 선택해주세요.</span>
                    			</div>
                    		</div>
                    		<div class="form_section">
                    			<div class="form_section_title">
                    				<label>작가소개</label>
                    			</div>
                    			<div class="form_section_content">
                    				<input name="authorIntro" type="text">
                    				<span id="warn_authorIntro">작가 소개를 입력 해주세요.</span>
                    			</div>
                    		</div>
                   		</form>
                   			<div class="btn_section">
                   				<button id="cancelBtn" class="btn">취 소</button>
	                    		<button id="enrollBtn" class="btn enroll_btn">등 록</button>
	                    	</div> 
                    </div>
                    <!-- 작가 정보 작성 및 전송 코드 추가 -->
                </div>
                <div class="clearfix"></div>
            </div>
        
<%@include file="../includes/admin/footer.jsp" %>
com.store.model 패키지에 Criteria.java 클래스를 생성 후 아래의 코드를 작성한다.public class Criteria {
	
	/* 현재 페이지 번호 */
	private int pageNum;
	
	/* 페이지 표시 개수 */
	private int amount;
	
	/* 페이지 skip */
	private int skip;
	
	/* 검색 타입 */
	private String type;
	
	/* 검색 키워드 */
	private String keyword;
	
	/* Criteria 생성자 */
	public Criteria(int pageNum, int amount) {
		
		this.pageNum 	= pageNum;
		this.amount 	= amount;
		this.skip 		= (pageNum -1) * amount;
		
	}
	
	/* Criteria 기본 생성자 */
	public Criteria() {
		
		this(1,10);
	}
	
	/* 검색 타입 데이터 배열 변환 */
	public String[] getTypeArr() {
		
		return type == null ? new String[] {}:type.split("");
	}
package com.store.model;
public class Criteria {
	
	/* 현재 페이지 번호 */
	private int pageNum;
	
	/* 페이지 표시 개수 */
	private int amount;
	
	/* 페이지 skip */
	private int skip;
	
	/* 검색 타입 */
	private String type;
	
	/* 검색 키워드 */
	private String keyword;
	
	/* Criteria 생성자 */
	public Criteria(int pageNum, int amount) {
		
		this.pageNum 	= pageNum;
		this.amount 	= amount;
		this.skip 		= (pageNum -1) * amount;
		
	}
	
	/* Criteria 기본 생성자 */
	public Criteria() {
		
		this(1,10);
	}
	
	/* 검색 타입 데이터 배열 변환 */
	public String[] getTypeArr() {
		
		return type == null ? new String[] {}:type.split("");
	}
	public int getPageNum() {
		return pageNum;
	}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
	}
	public int getAmount() {
		return amount;
	}
	public void setAmount(int amount) {
		this.amount = amount;
	}
	public int getSkip() {
		return skip;
	}
	public void setSkip(int skip) {
		this.skip = skip;
	}
	public String getType() {
		return type;
	}
	public void setType(String type) {
		this.type = type;
	}
	public String getKeyword() {
		return keyword;
	}
	public void setKeyword(String keyword) {
		this.keyword = keyword;
	}
	@Override
	public String toString() {
		return "Criteria [pageNum=" + pageNum + ", amount=" + amount + ", skip=" + skip + ", type=" + type
				+ ", keyword=" + keyword + "]";
	}
	
	
	
	
}
	public void setPageNum(int pageNum) {
		this.pageNum = pageNum;
		this.skip = (pageNum - 1) * this.amount;
	}
    	public void setAmount(int amount) {
		this.amount = amount;
		this.skip = (this.pageNum - 1) * this.amount;
	}
package com.store.mapper;
import java.util.List;
import com.store.model.AuthorVO;
import com.store.model.Criteria;
public interface AuthorMapper {
	
	/* 작가 등록 */
	public void authorEnroll(AuthorVO author);
	
	/* 작가 목록 */
	public List<AuthorVO> authorGetList(Criteria cri);
}
com.store.model.AuthorVO를 부여한다.<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  <mapper namespace="com.store.mapper.AuthorMapper">
  	
  	<!-- 작가 등록 -->
  	<insert id="authorEnroll">
  		insert into author(authorName, nationId, authorIntro) values(#{authorName}, #{nationId}, #{authorIntro});
  	</insert>
  	
  	<!-- 작가 목록 -->
  	<select id="authorGetList" resultType="com.store.model.AuthorVO">
  		select authorid, authorname, nationid, regdate, updatedate
  		from author
  		<if test="keyword != null">
  			where authorname like concat('%',#{keyword}, '%')
  		</if>
  		order by authorid desc
  		limit #{skip}, #{amount}
  	</select>
      
  </mapper>
insert into author(authorname, nationid)(select authorname, nationid from author);

AuthorMapperTests.java 클래스에 기존 테스트 코드는 주석 처리를 한 후 아래의 코드를 추가한다.	/* 작가 목록 테스트 */
	@Test
	public void authorGetListTest() throws Exception {
		
		Criteria cri = new Criteria(3,10); // 3page & 10개 행 표시
		
		List<AuthorVO> list = mapper.authorGetList(cri);
		
		for(int i = 0; i < list.size(); i++) {
			System.out.println("list" + i + ".............." + list.get(i));
		}
		
	}

	/* 작가 목록 테스트 */
	@Test
	public void authorGetListTest() throws Exception {
		
		Criteria cri = new Criteria(3,10); // 3page & 10개 행 표시
		cri.setKeyword("핏불");
		
		List<AuthorVO> list = mapper.authorGetList(cri);
		
		for(int i = 0; i < list.size(); i++) {
			System.out.println("list" + i + ".............." + list.get(i));
		}
		
	}
