여기서부턴 순서를 못적어서 뒤죽박죽일 뻔 했는데

우리반 반장님께서 목차정리를 해주셨다 ㅠㅠㅠ

정말 천사들이야....ㅠㅠ 

조회수 업데이트(BBSDao)

이전글,다음글(BBSDao,View)

 

수정(Edit,EditOk) 하기

1.bbs08/Edit.jsp(writer.jsp복붙)

이건 상세보기 페이지에 있는 상태에서 수정버튼을 누르면 이동하는 페이지니

view.jsp 로 가서 수정버튼인 a태그에 링크를 연결시켜 놓자!

<a href="Edit.jsp?no=<%=no %>" class="btn btn-success">수정</a>

 

Edit 페이지 작성!

사용자가 상세보기서 수정버튼 눌렀을 때  누른 글의 번호를 키로해서 

작성했던 글(누른 번호의 그 글만!) 내용을 가져와 수정한다!  selectone()

<!-- 로그인 여부 판단 -->
<jsp:include page="/common/IsMember.jsp" />
<%
	//파라미터(키값)받기
	String no = request.getParameter("no");
	
	//CRUD작업용 BBSDao생성
	BBSDao dao = new BBSDao(application);
	
	//레코드하나 가져오기
	BBSDto dto = dao.selectOne(no);
	dao.close();
%>

<jsp:include page="/template/Top.jsp"/> 
    <div class="container" style="margin-top:65px;"> 
        <div class="jumbotron bg-warning">
            <h1>수정 페이지</h1>
        </div>
        
        <form method="post" action="EditOk.jsp">
        	<input type="hidden" name="no" value="<%=no%>"/>
        	<input type="hidden" name="nowPage" />
        	<input type="hidden" name="searchColumn" />
			<input type="hidden" name="searchWord" />      
     		<div class="form-group">
        		<label><kbd class="lead" >제목</kbd></label>
       			<input type="text" class="form-control" placeholder="제목을 입력하세요" name="title" value="<%=dto.getTitle() %>">
     		</div>
      		<div class="form-group">
				<label><kbd class="lead">내용</kbd></label>
				<textarea class="form-control" rows="5" name="content"><%=dto.getContent() %></textarea>
			</div>
		    <button type="submit" class="btn btn-primary">수정</button>
    	</form> 
        
    </div>
<jsp:include page="/template/Footer.jsp"/>

 

2.EditOk.jsp(WriteOk복붙)

  여기서 글을 수정하는 작업을 하기 때문에  update()메소드를 구현하러 DAO로 가쟈!

 

	@Override
	public int update(BBSDto dto) {
		int affected=0;
		String sql="UPDATE bbs SET TITLE=?,CONTENT=? WHERE no=?";
		
		try {
			psmt = conn.prepareStatement(sql);
			psmt.setString(3,dto.getNo());
			psmt.setString(1,dto.getTitle());
			psmt.setString(2,dto.getContent());
			affected = psmt.executeUpdate();
		}
		catch(SQLException e){e.printStackTrace();}
			return affected;
	}//////////////

잠시 잊고 있었던거 같은데 update 반환타입이 int인건

 update가 성공하면 1 아니면 0아니음수 반환

다시 EditeOk 작성가자

 <!-- EditOk.jsp -->  
<jsp:include page="/common/IsMember.jsp" /> 
<%
	//POST방식일때 한글 깨지는 거 처리용(톰캣 10.0.27버전은 안깨짐)
	//request.setCharacterEncoding("UTF-8");
	//파라미터 받기(이건 사용자가 입력하는걸 그대로 받으니까)
	String title = request.getParameter("title");
	String content = request.getParameter("content");
	String no = request.getParameter("no");

	//데이타를 전달할 DTO객체 생성 및 데이타 설정  
	BBSDto dto = new BBSDto();
	dto.setContent(content);
	dto.setTitle(title);
	dto.setNo(no);
	
	//CRUD작업용 DAO계열 객체 생성
	BBSDao dao =new BBSDao(application);
	
	//데이터 설정한거 입력작업
	int affected = dao.update(dto);
	dao.close();
	if(affected == 1){
		//response.sendRedirect("List.jsp"); 리다이렉트는 한글이 깨짐
		out.println("<script>");
		out.println("location.replace('List.jsp')");
		out.println("</script>");
	}
	else{
		out.println("<script>");
		out.println("alert('수정 실패!');");
		out.println("history.back();");
		out.println("</script>");
	}	
%>

나중에 페이징 할 때 수정 후 글 다시보기는 그때 처리

지금은 수정하면 목록으로 보내버림 안그럼 에러나서...

 

3. 이제 delete 만 하면 주요기능은 얼추 끝낸듯...

삭제같은경우 

값들을 따로 뿌려줘야할 게 없음

얻은 키값으로 레코드 하나를 걍 날려버리면 됨 

역시 그럼 먼저  DAO로 가서 delete메소드를 구현시켜보자

	@Override
	public int delete(String no) {
		int affected=0;
		String sql="DELETE bbs WHERE no=?";
		try {	
			psmt= conn.prepareStatement(sql);
			psmt.setString(1,no);
			affected =psmt.executeUpdate();
		}
		catch(SQLException e) {e.printStackTrace();}		
		return affected;
	}

Delete.jsp는 보이는 페이지가 아님

삭제 로직만 작성하면 끝

아! 그 전에 

삭제 버튼을 누른다고 그냥 삭제되면 너무 정이 없음... 은 감정적인 이유고

혹시 모를 불상사를 대비해서

삭제버튼 클릭 시 한 번 더 물어보는 작업을 해주면 좋음

view.jsp에서 자바스크립트로 작성

<script>
	function isDelete(){
		if(confirm("삭제 하시겠습니까?")){
			location.replace("Delete.jsp?no=<%=no%>");
		}		
	}
</script>

아 그래서 삭제버튼 a태그에 isDelete 가 있었구나 !!

 

중요한건 대충 끝냇고

이제 남은건

 

model /PagingUitil.jsp

페이징(BBSDao,List)

수정시 조회수 늘리지 않기

게시판페이징

글 번호를 pk값이 아닌 목록에 표시된 순서로 저장

 

이건... 내일..

아 내일 팀프로젝트 찾아봐야하는데.... 하......

 

+ Recent posts