Here’s the Beer app architecture, all done up in Struts...
1 Having received a request, the ActionServlet locates the correct form bean using the struts-config.xml file. The ActionServlet invokes the form bean’s validation logic. If the form bean finds any errors, it populates an ActionErrors object.
2 Using the struts-config.xml file, the ActionServlet locates and invokes the Action object, which invokes the model and returns an ActionForward object to the ActionServlet.
3 Having previously extracted the necessary mappings from struts-config.xml, the ActionServlet uses the ActionForward object to dispatch to the correct view component.