마지막입니다. 글 삭제하기 기능입니다.
이것도 글 수정하는 거랑 원리가 비슷합니다. 글삭제버튼을 누르게 되면 비밀번호를 입력하라고 나오는데 입력해서 맞으면 삭제하는 식입니다.
글삭제를 누르면 deleteForm.do를 실행합니다. 이것은 deleteForm.jsp를 실행합니다.
<html:form action="delete" method="POST" focus="pwd">
<table border="1" width="250">
<tr bgcolor="#7eaee9">
<td>게시물의 비밀번호를 입력하세요.</td>
</tr>
<tr>
<td>
<html:password property="pwd"/>
<html:hidden property="id" value="<%= request.getParameter("id") %>"/>
<html:submit value="확인"/>
</td>
</tr>
<tr>
<td>
<html:messages id="msg" property="invalidPwd">
<bean:write name="msg"/>
</html:messages>
</td>
</tr>
</table>
</html:form>
pwd를 입력받고 id는 파라메터로 받은 것을 delete.do에 넘겨줍니다.
delete.do를 수행하는 action태그를 보도록 합시다.
struts-config.xml
<action path="/delete"
type="simpleboard.actions.deleteAction"
name="DynaForm"
scope="request"
validate="true"
input="/deleteForm.jsp">
</action>
deleteAction을 수행하며 비밀번호가 맞으면 자바스크립트를 통해 삭제가 성공했다는 메시지를 띄우고 틀리면 deleteForm.jsp를 다시 실행합니다.
deleteAction을 보도록 합시다.
deleteAction.java
public class deleteAction extends Action{
public ActionForward execute( ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception{
DynaActionForm deleteForm = (DynaActionForm)form;
BoardDAO dao = new BoardDAO();
ActionMessages errors = new ActionMessages();
int id = (Integer)deleteForm.get("id");
String pwd = (String)deleteForm.get("pwd");
if (dao.CheckPwd(id, pwd)) {
dao.Delete(id);
response.setContentType("text/html; charset=euc-kr");
PrintWriter out = response.getWriter();
out.println("<script language='javascript'>");
out.println("alert('글이 삭제되었습니다.');");
out.println("location.href = \"list.do\";");
out.println("</script>");
return null;
}
else {
errors.add("invalidPwd",new ActionMessage("error.pwd.invalid"));
saveErrors(request,errors);
return mapping.getInputForward();
}
}
}
id와 pwd를 받고, CheckPwd를 통해서 비밀번호를 체크후에 맞으면 dao의 Delete메소드를 수행한뒤 자바스크립트로 삭제되었다는 메시지를 띄운뒤 list.do로 이동합니다.
비밀번호가 틀리면 에러메시지를 추가해서 input으로 포워드합니다.
자 이제 끝났습니다.
혼자서 삽질한 느낌이 드는군요.
단 한분이라도 도움이 되었으면 좋겠습니다.
당신의 의견을 작성해 주세요.
머드초보님홈피에서 소스코드의 표시효과에 관하여 질문드립니다.
어덯게 하면 홈페지에 EDIT Tools처럼 번호달린 소스표시가 되는지요.
그럼 잘 부탁드립니다.
아네 안녕하세요 ^^
텍스트큐브 플러그인인데요 ^^
코드하이라이트라는 플러그인을 설치하시면 돼요 ^^
http://gendoh.tistory.com/2510954
답변 감사합니다. ^^
아네 ^^
방문해주셔서 감사해요 ^^
플렉스가 아직 먼지도 모르는 초보입니다.
참고 많이 할게요
퍼가여
반갑습니다^^
저도 아직은 플렉스초보라 ^^
근데 이 글은 Struts자료군요-_-;