본문 바로가기
Backend/JAVA_WEB

10. JavaBeans를 이용한 성적 테이블 CRUD 게시판 만들기 ② (성적 상세보기, 삭제, 수정)

by 개발개발빈이 2022. 7. 17.

○ 성적 상세보기 (sungjukRead.jsp)

    - main/webapp/sungjukBean/sungjukRead.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>    
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>	
    <title>sungjukRead.jsp</title>
    <style>
        h3 {
            font: 40px Montserrat, sans-serif;
            font-weight: 500;		
        }
        tbody td {
            text-align: left;
        }
    </style>	
</head>
<body>
  <div class="container-fluid text-center">

    <h3>★ 성적 상세보기 ★</h3>
    <p>
        <a href="sungjukForm.jsp">[성적쓰기]</a>
        <a href="sungjukList.jsp">[성적목록]</a>
    </p>
<%
    int sno=Integer.parseInt(request.getParameter("sno"));
    dto=dao.read(sno);

    if(dto==null){
        out.println("해당 글 없음");
    }else{
%>		
        <table class="table">
            <tr>
                <th class="warning">이름</th>
                <td><%=dto.getUname()%></td>
            </tr>
            <tr>
                <th class="warning">국어</th>
                <td><%=dto.getKor()%></td>
            </tr>
            <tr>
                <th class="warning">영어</th>
                <td><%=dto.getEng()%></td>
            </tr>										
            <tr>
                <th class="warning">수학</th>
                <td><%=dto.getMat()%></td>
            </tr>				
            <tr>
                <th class="warning">평균</th>
                <td><%=dto.getAver()%></td>
            </tr>				
            <tr>
                <th class="warning">주소</th>
                <td><%=dto.getAddr()%></td>
            </tr>
            <tr>
                <th class="warning">작성일</th>
                <td><%=dto.getWdate()%></td>
            </tr>									
        </table>		
<%		
    }//if end
%>
        <br>
        <a href="sungjukUpdate.jsp?sno=<%=sno%>">[수정]</a>
        &nbsp;&nbsp;
        <a href="sungjukDel.jsp?sno=<%=sno%>">[삭제]</a>

  </div>		

</body>
</html>

 

○ 성적 삭제 (sungjukDel.jsp)

    - main/webapp/sungjukBean/sungjukDel.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>    
<%@ include file="ssi.jsp" %>    
    
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>sungjukDel.jsp</title>
</head>
<body>
    <h3>☆ 성적 삭제 ☆</h3>
    <p>
        <a href="sungjukForm.jsp">[성적쓰기]</a>
        <a href="sungjukList.jsp">[성적목록]</a>
    </p>		
<%
    int sno=Integer.parseInt(request.getParameter("sno"));
    int cnt = dao.delete(sno);
    
    if(cnt==0){
        out.println("<p>성적 삭제가 실패했습니다</p>");
        out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>");
    }else{
        out.println("<script>");
        out.println("    alert('성적이 삭제되었습니다');");
        out.println("    location.href='sungjukList.jsp';");
        out.println("</script>");
    }//if end		
%>
</body>
</html>

 

○ 성적 수정

    ① 입력 폼에 기존에 입력된 내용 출력하기 

         - main/webapp/sungjukBean/sungjukUpdate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ include file="ssi.jsp" %>
    
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>	
    <title>sungjukUpdate.jsp</title>
    <style>
        h3 {
            font: 40px Montserrat, sans-serif;
            font-weight: 500;		
        }
    </style>
</head>
<body>
  <div class="container-fluid text-center">
    <h3>★ 성적 수정 ★</h3>	
<% 	
    //수정하고자 하는 행번호
    int sno=Integer.parseInt(request.getParameter("sno"));
%>
    <p>
        <a href="sungjukRead.jsp?sno=<%=sno%>">[상세보기]</a>
        <a href="sungjukList.jsp">[성적목록]</a>
    </p>
<%	
    dto=dao.read(sno);
    if(dto==null){
        out.println("해당 글 없음");
    }else{		
%>
    <form method="post" action="sungjukUpdateProc.jsp">
        <input type="hidden" name="sno" value="<%=sno%>">
        <table class="table">
        <tr>
          <th class="active">이름</th>
          <td>
            <input type="text" name="uname" class="form-control" maxlength="20" 
            	required value="<%=dto.getUname()%>">
          </td>
        </tr> 
        <tr>
          <th class="active">국어</th>
          <td>
            <input type="number" name="kor" class="form-control" size="5" 
            	min="0" max="100" placeholder="숫자입력" value="<%=dto.getKor()%>">
          </td>
        </tr> 
        <tr>
          <th class="active">영어</th>
          <td>
            <input type="number" name="eng" class="form-control" size="5" 
            	min="0" max="100" placeholder="숫자입력" value="<%=dto.getEng()%>">
          </td>
        </tr> 
        <tr>
          <th class="active">수학</th>
          <td>
            <input type="number" name="mat" class="form-control" size="5" 
            	min="0" max="100" placeholder="숫자입력" value="<%=dto.getMat()%>">
          </td>
        </tr> 
        <tr>
          <th class="active">주소</th>
          <td>
            <% String addr=dto.getAddr(); %>
              <select name="addr" class="form-control">
                <option value="Seoul" <%if (addr.equals("Seoul")) {out.print("selected");} %>>
                  서울
                </option>
                <option value="Jeju" <%if (addr.equals("Jeju")) {out.print("selected");} %>>
                  제주
                </option>
                <option value="Suwon" <%if (addr.equals("Suwon")) {out.print("selected");} %>>
                  수원
                </option>
                <option value="Busan" <%if (addr.equals("Busan")) {out.print("selected");} %>>
                  부산
                </option>
		      </select> 
          </td>
        </tr> 
        <tr>
          <td colspan="2" align="center">
            <input type="submit" value="수정" class="btn btn-default btn-lg">
            <input type="reset"  value="취소" class="btn btn-default btn-lg">
          </td>
        </tr>
        </table>
    </form>
<%		
	}//if end
%>	
  </div>	
</body>
</html>

    ② 수정할 내용 입력받아서 수정 프로세스 진행 

         - main/webapp/sungjukBean/sungjukUpdateProc.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>    

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>	
    <title>sungjukUpdateProc.jsp</title>
</head>
<body>
    <h3>☆ 성적 수정 결과 ☆</h3>
    <p>
        <a href="sungjukForm.jsp">[성적쓰기]</a>
        <a href="sungjukList.jsp">[성적목록]</a>
    </p>
<%
    //사용자가 입력한 정보를 가져와서 변수에 담기
    String uname = request.getParameter("uname").trim();
    int kor      = Integer.parseInt(request.getParameter("kor").trim());
    int eng      = Integer.parseInt(request.getParameter("eng").trim());
    int mat      = Integer.parseInt(request.getParameter("mat").trim());
    String addr  = request.getParameter("addr");
    int sno      = Integer.parseInt(request.getParameter("sno").trim());
    int aver     = (kor+eng+mat)/3;
	
    //dto 객체에 담기
    dto.setUname(uname);
    dto.setKor(kor);
    dto.setEng(eng);
    dto.setMat(mat);
    dto.setAver(aver);
    dto.setAddr(addr);
    dto.setSno(sno);
	
    int cnt=dao.updateproc(dto);	

    if(cnt==0){
        out.println("<p>성적 수정이 실패했습니다</p>");
        out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>");
    }else{
        out.println("<script>");							
        out.println("    alert('성적이 수정되었습니다');");
        out.println("    location.href='sungjukList.jsp';");//목록페이지 이동
        out.println("</script>");
    }//if end
%>
</body>
</html>

 

댓글