struts 2.0
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Struts 2.0
Don Brown
Web, Circa 2000
Web, Circa 2006
Struts 2 Architecture
Struts 1Action ActionForm ActionForward struts-config.xml
ActionServlet RequestProcessor
Struts 2ActionAction or POJO’sResultstruts.xmlFilterDispatcherInterceptors
Struts Plugins
Simple Example
<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:
Struts 1
</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>
<s:form action="Meeting" validate="true"> <s:token /> <s:textfield label=”Name” name=“name” /> <s:textfield label=”Date" name="date"/> <s:select label=”Invitees” name="invitees" list="employees"/> <s:textarea label=”Description” name="description" rows="4" cols="50" /> <s:submit value=”Save" method="save"/></s:form>
Struts 2
Example Revisited
<s:textfield label="Name" name="name" tooltip="Meeting name" />
<s:datepicker label="Date" name="date"/>
<s:optiontransferselect ... />
<jsp:include page="/ajax/commonInclude.jsp"/>...<s:textarea theme="ajax" label="Description" name="description" rows="4" cols="50" />
But there's more . . .
Brian Kernighan Law of Debugging DifficultyDebugging 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.
Prevention and Cure
struts.devMode = true
Built-in Testing Support
public class MyActionTest extends StrutsTestCase {
public void testExecute() throws Exception {
assertTrue(true); }}
any.action?debug=console
any.action?profiling=yes
Time to Upgrade?
Tutorials, Guides, and FAQs
Struts 2 Training Course
<action name="editGangster" class="org.apache.struts2.s1.Struts1Action"> <param name="className"> com.mycompany.gangstas.EditGangsterAction </param> <result> gangsterForm.jsp </result></action>
Run Struts 1 Actions as Is
How do I get started?
Where We are Going