8. creates / reuses index.htm Controller Show Logging Action .java Mappings Business Logic Layer Data Layer View Layer Jsp Engine LoggingBean.java logging.jsp Logging Form request/session Web Browser Granite Request: ShowLogging.do creates form bean in correct scope perform(mapping, form, request, response) calls business logic rule to get logging info returns forward(success) mainpulates data setCategoryList(list) forwards – logging.jsp expands custom tags response sent to browser – pure html ServerBean.java logging.jsp displays internationalized messages Web Server looks up <!-- Show logging --> <action path ="/ShowLogging" type ="beans.ShowLoggingAction" name ="LoggingForm"> < forward name="success“ path="/logging.jsp" /> </action> populates form values <form name="LoggingForm" …> <logic:iterate id="category“ name="LoggingForm" property="categoryList"> <bean:write name="category" property="key"/> <bean:write name="category" property="desc"/> … . </logic:iterate> </form> Messages Resources
9. creates / reuses action instance logging.jsp Controller Show Logging Action .java Mappings Business Logic Layer Data Layer View Layer Jsp Engine LoggingBean.java results.jsp Logging Form request/session Web Browser Granite form submit – action=‘SaveLogging.do’ reuses form bean in correct scope calls perform(mapping, form, request, response) getCategoryList() returns mapping.findForward("success") forwards – result.jsp expands custom tags Displays internationalized messages from bean response sent to browser – pure html ServerBean.java Messages Bean add result messages For each one that user has changed… call business logic to change on server browser adds form variables to request results.jsp Web Server looks up <!-- Save logging --> <action path ="/SaveLogging" type ="beans.SaveLoggingAction" name ="LoggingForm"> < forward name="success“ path="/result.jsp" /> </action> auto populates using bean getters/setters <form name="LoggingForm" …> <select name="category[0].value" > </form> becomes request parameter category[0].value added to form using LoggingForm.getCategory(0).setValue(value) • • • • • • •