Web frameworks
Struts, Spring MVC, WebWork, Tapestry & JSF Matt Raible mraible@virtuas.com
© 2006 Virtuas Open Source Solutions
Today's Agenda
Introductions Web Framework Overviews: How Each Works Intermission Web Framework Comparison: What each does well Lunch Architecture discussions, open forum
© 2006 Virtuas Open Source Solutions
Introductions
Your experience withwebapps? Your experience with J2EE? What do you want to get from this session? Experience with Ant, Tomcat, Hibernate, Spring? Web Framework Experience: Struts, Spring MVC, WebWork, Tapestry, JSF
© 2006 Virtuas Open Source Solutions
Matt
© 2006 Virtuas Open Source Solutions
Raible
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas OpenSource Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 VirtuasOpen Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
© 2006 Virtuas Open Source Solutions
My Experience
Struts: used since June 2001 - same time 1.0 was released. Spring MVC: used since January 2004 - before 1.0 was released. WebWork: used since July 2004. Tapestry: used since July 2004. JSF: used since July 2004 - both Sun’s RI andMyFaces.
© 2006 Virtuas Open Source Solutions
Meet the Candidates
© 2006 Virtuas Open Source Solutions
Struts
Pros: The “Standard” - lots of Struts jobs Lots of information and examples HTML tag library is one of the best Cons: ActionForms - they’re a pain Can’t unit test - StrutsTestCase only does integration Project has been rumored as “dead”
© 2006 Virtuas Open Source SolutionsStruts
© 2006 Virtuas Open Source Solutions
Struts Lifecycle
© 2006 Virtuas Open Source Solutions
Struts Action
public class UserAction extends DispatchAction { private UserManager mgr = null; public void setUserManager(UserManager userManager) { this.mgr = userManager; } public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response) throws Exception { DynaActionForm userForm = (DynaActionForm) form; User user = (User) userForm.get("user"); mgr.removeUser(request.getParameter("user.id")); ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("user.deleted", user.getFullName())); saveMessages(request.getSession(), messages); returnmapping.findForward("users"); }
© 2006 Virtuas Open Source Solutions
Struts Action
public class UserAction extends DispatchAction { private UserManager mgr = null; public void setUserManager(UserManager userManager) { this.mgr = userManager; } public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm userForm =(DynaActionForm) form; User user = (User) userForm.get("user"); mgr.removeUser(request.getParameter("user.id")); ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("user.deleted", user.getFullName())); saveMessages(request.getSession(), messages); return mapping.findForward("users"); }
© 2006 Virtuas Open Source Solutions
Struts Actionpublic class UserAction extends DispatchAction { private UserManager mgr = null; public void setUserManager(UserManager userManager) { this.mgr = userManager; } public ActionForward delete(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { DynaActionForm userForm = (DynaActionForm) form; User user = (User) userForm.get("user");...
Regístrate para leer el documento completo.