460 likes | 725 Vues
Don Brown. Struts 2.0. Web, Circa 2000. Web, Circa 2006. Struts 2 Architecture. Struts 1 Action  ActionForm  ActionForward  struts-config.xml  ActionServlet  RequestProcessor . Struts 2 Action Action or POJO’s Result struts.xml
                
                E N D
Don Brown Struts 2.0
Struts 1 Action  ActionForm  ActionForward  struts-config.xml  ActionServlet  RequestProcessor  Struts 2 Action Action or POJO’s Result struts.xml FilterDispatcher Interceptors
Struts 1 <html:errors/> <html:form action="/SaveMeeting"> <table border="0" width="100%"> <tr> <th align="right"> Name: </th> <td align="left"> <html:text property="name" size=”50” /> </td> </tr> <tr> <th align="right"> Date:
</th> <td align="left"> <html:text property="date" size="50"/> </td> </tr> <tr> <th align="right"> Invitees: </th> <td align="left"> <html:select property="invitees" multiple="true"> <html:options collection="employees" property="value" labelProperty="label"/> </html:select>
</tr> <tr> <th align="right"> Description: </th> <td align="left"> <html:textarea property="description" rows="4" cols="50" /> </td> </tr> <tr> <td align="right">   </td>
... Only four pages! <td align="left"> <html:submit property="DO_SUBMIT"> Save </html:submit> </td> </tr> </table> </html:form>
Struts 2 <s:form action="Meeting" validate="true"> <s:token /> <s:textfield label=”Name” name=“name” /> <s:textfieldlabel=”Date"name="date"/> <s:select label=”Invitees” name="invitees"list="employees"/> <s:textarealabel=”Description” name="description" rows="4"cols="50"/> <s:submitvalue=”Save"method="save"/> </s:form>
<s:textfield label="Name" name="name"tooltip="Meeting name"/>
<jsp:include page="/ajax/commonInclude.jsp"/> ... <s:textareatheme="ajax"label="Description" name="description" rows="4" cols="50" />
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it. Brian Kernighan Law of Debugging Difficulty
Built-in Testing Support public class MyActionTest extends StrutsTestCase { public void testExecute() throws Exception { assertTrue(true); } }
Run Struts 1 Actions as Is <action name="editGangster" class="org.apache.struts2.s1.Struts1Action"> <param name="className"> com.mycompany.gangstas.EditGangsterAction </param> <result> gangsterForm.jsp </result> </action>