반응형
수정 페이지
수정 버튼 눌렀을 때 edit페이지 구현하기.
수정을 할 경우 가져가야 할 param은 페이지에 대한 id와 수정할 제목 , 내용이다.
폼을 edit컨트롤러에 연결해주고
name값이 title , content, id값을 getparameter로 컨트롤러에서 받는다.
<form method="post" action="edit">
<div class="margin-top first">
<h3 class="hidden">공지사항 수정</h3>
<table class="table">
<tbody>
<tr>
<th>제목</th>
<td class="text-align-left text-indent text-strong text-orange" colspan="3">
<input type="text" name="title" value="${n.title}" />
</td>
</tr>
<tr>
<th>작성일</th>
<td class="text-align-left text-indent" colspan="3">${n.regdate}</td>
</tr>
<tr>
<th>작성자</th>
<td>${n.writerId}</td>
<th>조회수</th>
<td>${n.hit}</td>
</tr>
<!-- <tr>
<th>첨부파일</th>
<td colspan="3"><input type="file" name="file" /></td>
</tr> -->
<tr class="content">
<td colspan="4"><textarea class="content" name="content">
</textarea></td>
</tr>
</tbody>
</table>
</div>
<div class="margin-top text-align-center">
<input type="hidden" name="id" value="${n.id}" />
<input type="hidden" name="writerId" value="newlec" />
<input class="btn-text btn-default" type="submit" value="저장" />
<a class="btn-text btn-cancel" href="../../notice/12">취소</a>
</div>
</form>
컨트롤러에서는 비즈니스 로직을 처리한 뒤 비단으로 보낸다.
그리고 자신이 수정할 페이지를 확인할 수 있도록 해당 id의 detail페이지로 sendRedirect 해줍니다.
package com.newlecture.web.controller.admin.board.notice;
import java.io.IOException;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.tiles.TilesContainer;
import org.apache.tiles.access.TilesAccess;
import com.newlecture.web.entity.Notice;
import com.newlecture.web.service.NoticeService;
@WebServlet("/admin/board/notice/edit")
public class AdminEditController extends HttpServlet{
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
String title = request.getParameter("title");
String content = request.getParameter("content");
int id = 1;
int result= 0;
String id_ = request.getParameter("id");
if(!id_.equals("") && id_ != null) {
id = Integer.parseInt(id_);
}else {
System.out.println("널값이거나 공백 입니다.");
}
Notice notice = new Notice();
notice.setContent(content);
notice.setTitle(title);
notice.setId(id);
NoticeService service = new NoticeService();
try {
result = service.editNotice(notice); // model: ����� ������
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.sendRedirect("detail?id="+id);
}
}
보내기 전 service함수에서는 변경된 값을 DB에 저장해야 합니다.
public int editNotice(Notice notice) throws ClassNotFoundException, SQLException {
int result = 0;
String url = "jdbc:mysql://dev.notepubs.com:9898/newlecture?useSSL=false&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC";
String sql = "UPDATE Notice SET title=?, content=? WHERE id=?";
Class.forName("com.mysql.cj.jdbc.Driver");
Connection con = DriverManager.getConnection(url, "newlecture", "111");
PreparedStatement st = con.prepareStatement(sql);
st.setString(1, notice.getTitle());
st.setString(2, notice.getContent());
st.setInt(3, notice.getId());
result =st.executeUpdate();
st.close();
con.close();
return result;
}
반응형
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 54일차 -84 (0) | 2020.05.21 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 53일차 -83 (0) | 2020.05.15 |
자바기반의 웹&앱 응용 SW개발자 양성과정 51일차 -81 (0) | 2020.05.12 |
자바기반의 웹&앱 응용 SW개발자 양성과정 51일차 -80 (0) | 2020.05.11 |
자바기반의 웹&앱 응용 SW개발자 양성과정 50일차 -79 (0) | 2020.05.05 |
댓글