수업/스프링

[Spring] 9일차

분홍야자 2023. 4. 21. 09:20

모달 추가

<!-- Modal 추가 -->
                            <div class="modal fade" id="myModal" tapindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                            	<div class="modal-dialog">
                            		<div class="modal-content">
                            			<div class="modal-header">
                            				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                            				<h4 class="modal-title" id="myModalLabel">Modal title</h4>
                            			</div>
                            			<div class="modal-body">처리가 완료되었습니다.</div>
                            			<div class="modal-footer">
                            				<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            				<button type="button" class="btn btn-primary">Save Changes</button>
                            			</div>
                            		</div>
                            	</div>
                            </div>

 

list.jsp - 스크립트 추가

 

 

게시물 등록 이동버튼 추가

 

 

<button id="regBtn" type="button" class="btn btn-xs pull-right">Register New Board</button>

 

총합 - list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ include file="../includes/header.jsp" %>
<c:set var="contextPath" value="${pageContext.request.contextPath == '/' ? '' : pageContext.request.contextPath }" scope="application"/> <!-- 변수 생성 - 루트 자동으로 읽어들이기 -->
            <div class="row">
                <div class="col-lg-12">
                    <h1 class="page-header">Tables</h1>
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            <div class="row">
                <dcon	iv class="col-lg-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">
                            Board List Page
                            <button id="regBtn" type="button" class="btn btn-xs pull-right">Register New Board</button>
                        </div>
                        <!-- /.panel-heading -->
                        <div class="panel-body">
                            <table class="table table-striped table-bordered table-hover">
                                <thead>
                                    <tr>
                                        <th>#번호</th>
                                        <th>제목</th>
                                        <th>작성자</th>
                                        <th>작성일</th>
                                        <th>조회수</th>
                                    </tr>
                                </thead>
                                <tbody>
                                	<c:forEach items="${list}" var="board">
                                	<tr>
                                		<td>${board.bno}</td>
                                		<td><a href="/board/read/?bno=${board.bno}">${board.title}</a></td>
                                		<td>${board.writer}</td>
                                		<td><fmt:formatDate pattern="yyyy-MM-dd HH:mm" value="${board.regdate}"/></td>
                                		<td><span class="badge bg-ref">${board.viewcnt}</span></td>
                                	</tr>
                                	</c:forEach>
                                </tbody>
                            </table>
                            
                            <!-- Modal 추가 -->
                            <div class="modal fade" id="myModal" tapindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                            	<div class="modal-dialog">
                            		<div class="modal-content">
                            			<div class="modal-header">
                            				<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                            				<h4 class="modal-title" id="myModalLabel">Modal title</h4>
                            			</div>
                            			<div class="modal-body">처리가 완료되었습니다.</div>
                            			<div class="modal-footer">
                            				<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            				<button type="button" class="btn btn-primary">Save Changes</button>
                            			</div>
                            		</div>
                            	</div>
                            </div>
                            
                        </div>
                        <!-- /.panel-body -->
                    </div>
                    <!-- /.panel -->
                </div>
                <!-- /.col-lg-12 -->
            </div>
            <!-- /.row -->
            
<script type="text/javascript">
	
	$(document).ready(function() { //$(document).ready() : 위 html 문서가 컴파일 준비가 다 되었다면
		var result = "${result}";
		checkModal(result);
		
		function checkModal(result){
			if (result == "") {
				return;
			}
			if (parseInt(result) > 0) { 
				$(".modal-body").html("게시글  " + parseInt(result) + " 번이 등록 되었습니다");
			}
			
			$("#myModal").modal("show");
		}
	}); 
	
	$("#regBtn").on("click", function() { // function() : 익명함수 (즉시실행함수) : 이름이 없는 함수
		 self.location = "${contextPath}/board/register"; // self.location : 이동시켜버림
	});
	
</script>
<%@include file="../includes/footer.jsp"%>

 

read.jsp 파일 만들기 - 상세 페이지

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<%@include file="../includes/header.jsp"%>

<div class="row">
<c:set var="contextPath" value="${pageContext.request.contextPath == '/' ? '' : pageContext.request.contextPath }" scope="application" />
  <div class="col-lg-12">
    <h1 class="page-header">Board Read</h1>
  </div>
  <!-- /.col-lg-12 -->
</div>
<!-- /.row -->

<div class="row">
  <div class="col-lg-12">
    <div class="panel panel-default">

      <div class="panel-heading">Board Read Page</div>
      <!-- /.panel-heading -->
      <div class="panel-body">

         <div class="form-group">
           <label>Bno</label> <input class="form-control" name="bno" value="${board.bno }" readonly="readonly">
         </div>

         <div class="form-group">
           <label>Title</label> <input class="form-control" name="title" value="${board.title }" readonly="readonly">
         </div>

         <div class="form-group">
           <label>Text area</label>
           <textarea class="form-control" rows="3" name="content" readonly="readonly">${board.content }</textarea>
         </div>

         <div class="form-group">
           <label>Writer</label> <input class="form-control" name="writer" value="${board.writer }" readonly="readonly">
         </div>
         <!-- html의 data- 속성 이용 -->
         <button data-oper="modify" class="btn btn-default">
            <a href="${contextPath }/board/modify?bno=${board.bno}">Modify</a>
         </button>
         <button data-oper="list" class="btn btn-default">
            <a href="${contextPath }/board/list">List</a>
         </button>
               </div>
      <!--  end panel-body -->

    </div>
    <!--  end panel-body -->
  </div>
  <!-- end panel -->
</div>
<!-- /.row -->
<%@include file="../includes/footer.jsp"%>

 

 

다중 맵핑 - BoardController

두 컨트롤러 모두 똑같다 이럴 때 다중매핑 사용하여 하나로 만들기

	@RequestMapping(value = {"/read","/modify"}, method = RequestMethod.GET)
	public void modifyGET(@RequestParam("bno") int bno, Model model) throws Exception {
		model.addAttribute("board", service.read(bno));
		
	}

 

 

modify.jsp 페이지 - 수정페이지 만들기

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>

<%@include file="../includes/header.jsp"%>

<div class="row">
<c:set var="contextPath" value="${pageContext.request.contextPath == '/' ? '' : pageContext.request.contextPath }" scope="application" />
  <div class="col-lg-12">
    <h1 class="page-header">Board Modify</h1>
  </div>
  <!-- /.col-lg-12 -->
</div>
<!-- /.row -->

<div class="row">
  <div class="col-lg-12">
    <div class="panel panel-default">

      <div class="panel-heading">Board Modify Page</div>
      <!-- /.panel-heading -->
      <div class="panel-body">
		 <form action="${contextPath}/board/modify" method="post" role="form">
	         <div class="form-group">
	           <label>Bno</label> <input class="form-control" name="bno" value="${board.bno }" readonly="readonly">
	         </div>
	
	         <div class="form-group">
	           <label>Title</label> <input class="form-control" name="title" value="${board.title }">
	         </div>
	
	         <div class="form-group">
	           <label>Text area</label>
	           <textarea class="form-control" rows="3" name="content">${board.content }</textarea>
	         </div>
	
	         <div class="form-group">
	           <label>Writer</label> <input class="form-control" name="writer" value="${board.writer }" readonly="readonly">
	         </div>
	         <!-- html의 data- 속성 이용 -->
	         <button type="button" data-oper="modify" class="btn btn-default">Modify</button>
	         <button type="button" data-oper="remove" class="btn btn-danger">Remove</button>
	         <button type="button" data-oper="list" class="btn btn-info">List</button>
		 </form>
      </div>
      <!--  end panel-body -->

    </div>
    <!--  end panel-body -->
  </div>
  <!-- end panel -->
</div>
<!-- /.row -->
<%@include file="../includes/footer.jsp"%>

 

 

data-* 속성사용하기