introduction to struts 2.0
Post on 05-Jan-2016
48 Views
Preview:
DESCRIPTION
TRANSCRIPT
Introduction to Struts 2.0
Jenny NiJoey Feng
Winddays WangHewmmi Zhu
Heather Lv
Software School ,Fudan University1
1. What is Struts?2. Why to use framework?3. Struts 2.0 Overview4. Struts 2.0 MVC components5. Request Lifecycle in Struts 26. Struts 2.0 Architecture7. Sample Application8. Why we should use Struts 2.0? 9. Struts 1.x vs Struts 2.0 10. What you need to start using Struts2.0
Contents
Software School ,Fudan University 2
Open Source java framework for creating web applications.
Action Based Framework Create web application using MVC 2
architecture Apache Struts offer two major version
Struts 1.xStruts 2.0
Struts 2 = WebWork + Struts
What is Struts?
Software School ,Fudan University 3
Do we need framework? No and Yes. No. In small applications where you don’t
want the overhead of learning new things. But Yes We have to use framework in real world
application because:-Automation of common tasksConcentrate on higher level concerns.
Why use framework?
Software School ,Fudan University 4
Complete new framework based on webwork framework. Struts 2.0 implements MVC 2 design pattern.
Struts 2.0
Software School ,Fudan University 5
Controller:- Filter Dispatcher:-
First component that start processing that is why this type of MVC is called front controller MVC
Looks at the request and apply the appropriate action. Struts framework handles all of the controller work. Its configured in web.xml
Interceptors:- Can execute code before and after an Action is
executed. They can be configured per action basis. Can be used for data validation, file upload, double
submit guards.
Struts 2.0 MVC Components
Software School ,Fudan University 6
Model:-Implemented by action classFor model you can use any data access
technologies like JDBC,EJB,Hibernate
ViewIts your result part. It can be JSP,JSTL,JSF etc.Presentation part of the MVC
Struts 2.0 MVC Components contd.
Software School ,Fudan University 7
1. User Sends Request2. Filter Dispatcher determines the appropriate action3. Interceptors are applied4. Execution of action5. Output Rendering6. Return of Request7. Display of result to user.
Request Lifecycle in Struts 2.0
Software School ,Fudan University 8
Struts 2.0 Architecture
Struts 2.0 Architecture
Software School ,Fudan University 10
1. Simplified Design2. Simplified Action3. Simplified Testability4. Better tag features5. Annotation introduced6. Easy plug-in7. AJAX Support
Why we should use Struts 2.0?
Software School ,Fudan University 11
How Struts 1.x and Struts 2.0 differ from each other?› Configuration› Action Class› Dependency injection.› Servlet Dependency› Validation› Threading model› Testability› Expression Language
Struts 1.x vs Struts 2.0
Software School ,Fudan University 12
Struts 1Action ActionForm ActionForward struts-config.xml
ActionServlet RequestProcessor
Struts 2ActionAction or POJO’sResultstruts.xmlFilterDispatcherInterceptors
1. Java 5.02. Tomcat 5.x(Servlet api 2.4 and jsp api
2.0)
What you need to start using Struts 2.0?
Software School ,Fudan University 14
Let’s see something real…
Software School ,Fudan University 15
Web, Mail 2000
Web, Mail 2009
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 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
top related