package com.books; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionForward; import org.apache.struts.actions.DispatchAction; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; /** * * @author Adeel * */ public class BookActions extends DispatchAction { public ActionForward AddBook(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Add Book Page"); return mapping.findForward("addBook"); } public ActionForward EditBook(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Edit Book Page"); int bookId = Integer.parseInt(request.getParameter("bookId")); Books b = Books.getInstance(); Map bookDet = b.searchBook(bookId); // Used form bean class methods to fill the form input elements with // selected book values. BookForm bf = (BookForm) form; bf.setBookName(bookDet.get("BookName").toString()); bf.setAuthorName(bookDet.get("AuthorName").toString()); bf.setBookCost((Integer) bookDet.get("BookCost")); bf.setBookId((Integer) bookDet.get("BookId")); return mapping.findForward("editBook"); } public ActionForward SaveBook(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Save Book"); // Used form bean class methods to get the value of form input elements. BookForm bf = (BookForm) form; String bookName = bf.getBookName(); String authorName = bf.getAuthorName(); int bookCost = bf.getBookCost(); Books b = Books.getInstance(); b.storeBook(bookName, authorName, bookCost); return new ActionForward("/showbooks.do", true); } public ActionForward UpdateBook(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Update Book"); BookForm bf = (BookForm) form; String bookName = bf.getBookName(); String authorName = bf.getAuthorName(); int bookCost = bf.getBookCost(); int bookId = bf.getBookId(); Books b = Books.getInstance(); b.updateBook(bookId, bookName, authorName, bookCost); return new ActionForward("/showbooks.do", true); } public ActionForward DeleteBook(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Delete Book"); int bookId = Integer.parseInt(request.getParameter("bookId")); Books b = Books.getInstance(); b.deleteBook(bookId); return new ActionForward("/showbooks.do", true); } /** * Returns word file that can then be downloaded locally. * @see AsposeAPIHelper */ public ActionForward ExportToWord(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { System.out.println("Aspose export document"); Books b = Books.getInstance(); List<Map> books = b.getBookList(); response.setContentType("application/msword"); response.setHeader("Content-Disposition", "attachment;filename=AsposeExportBooksList.doc"); for (Map book : books) { try { AsposeAPIHelper.createAsposeWordDoc(response.getOutputStream(), books, request.getServletContext()); } catch (Exception e) { e.printStackTrace(); } } return null; } }