@Override public Page processRequest(HttpServletRequest request) { Page result = this; if ("new".equals(request.getParameter("action"))) { Member member = (Member) request.getSession().getAttribute("user"); result = new TopicEdit(this, new Topic(member)); } else if ("previous".equals(request.getParameter("action"))) { if (page > 1) { page--; } } else if ("next".equals(request.getParameter("action"))) { if (page < getNumberOfPages()) { page++; } } else if (isAction("edit")) { long id = Long.parseLong(request.getParameter("actionValue")); result = new TopicEdit(this, dao.find(id)); } else if (isAction("remove")) { long topicId = Long.parseLong(request.getParameter("actionValue")); Topic topic = dao.find(topicId); CommentDao commentDao = new CommentDao(); for (Comment comment : topic.getComments()) { commentDao.remove(comment); } dao.remove(topicId); } return result; }