The Action Class
The Action class is
an adapter between servlet requests and your business logic. In other
words, it is appropriate for your Action class to handle issues such as
gathering data from the user interface, controlling flow through the
application, and shaping the data for presentation. But it is
inappropriate for the Action class
itself to handle business functions. For example, if your Action class is updating a database itself,
you have probably inappropriately put business functions into the web
tier.
You will need to extend org.apache.struts.action.Action for each
Action you want to define. The most
important method to override is execute(). This example is from AdminBooksAction:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
AdminBooksActionForm adminBooksForm = (AdminBooksActionForm) form;
Map books = getLibrary().getBooks();
// First set all books to checked in
List bookList = getLibrary().getBookList();
Iterator i = bookList.iterator();
while (i.hasNext()) {
Book book = (Book) i.next();
if (book != null) {
book.setCheckedOut(false);
}
}
// Now based on the checks in the form, set checked books
// to "checked out"
String[] picks = adminBooksForm.getPicks();
if (picks != null) {
for (int j = 0; j < picks.length; j++) {
((Book) books.get(picks[j])).setCheckedOut(true);
}
}
return mapping.findForward("adminbooks");
}This Action handles the form
submission from /view/adminbooks.jsp ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access