We9 Struts 2.0

Post on 19-May-2015

1.520 views 4 download

Tags:

Transcript of We9 Struts 2.0

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’s

Resultstruts.xmlFilterDispatcher

Interceptors

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"> &nbsp; </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 Difficulty

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.

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