strut2

388 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
388
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

strut2

  1. 1. Introduction to Struts 2.0 Jenny Ni Joey Feng Winddays Wang Hewmmi Zhu Heather Lv 1 Software School ,Fudan University
  2. 2. Contents1. 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.010. What you need to start using Struts2.0 Software School ,Fudan University 2
  3. 3. What is Struts? 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.x Struts 2.0 Struts 2 = WebWork + Struts Software School ,Fudan University 3
  4. 4. Why use framework? 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 tasks  Concentrate on higher level concerns. Software School ,Fudan University 4
  5. 5. Struts 2.0 Complete new framework based on webwork framework. Struts 2.0 implements MVC 2 design pattern. Software School ,Fudan University 5
  6. 6. Struts 2.0 MVC Components 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. Software School ,Fudan University 6
  7. 7. Struts 2.0 MVC Components contd. Model:-  Implemented by action class  For model you can use any data access technologies like JDBC,EJB,Hibernate View  Its your result part. It can be JSP,JSTL,JSF etc.  Presentation part of the MVC Software School ,Fudan University 7
  8. 8. Request Lifecycle in Struts 2.01. 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. Software School ,Fudan University 8
  9. 9. Struts 2.0 Architecture
  10. 10. Struts 2.0 Architecture Software School ,Fudan University 10
  11. 11. Why we should use Struts 2.0?1. Simplified Design2. Simplified Action3. Simplified Testability4. Better tag features5. Annotation introduced6. Easy plug-in7. AJAX Support Software School ,Fudan University 11
  12. 12. Struts 1.x vs Struts 2.0 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 Software School ,Fudan University 12
  13. 13. Struts 1 Struts 2Action ⇒ ActionActionForm ⇒ Action or POJO’sActionForward ⇒ Resultstruts-config.xml ⇒ struts.xmlActionServlet ⇒ FilterDispatcherRequestProcessor ⇒ Interceptors
  14. 14. What you need to start using Struts 2.0?1. Java 5.02. Tomcat 5.x(Servlet api 2.4 and jsp api 2.0) Software School ,Fudan University 14
  15. 15. Let’s see something real… Software School ,Fudan University 15
  16. 16. Web, Mail 2000
  17. 17. Web, Mail 2009
  18. 18. Struts Plugins
  19. 19. Simple Example
  20. 20. 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:
  21. 21. </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>
  22. 22. </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>
  23. 23. <td align="left"> <html:submit property="DO_SUBMIT"> Save </html:submit> </td></tr></table></html:form>  ...  Only four pages!
  24. 24. Struts 2<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>
  25. 25. Example Revisited
  26. 26. <s:textfield label="Name" name="name" tooltip="Meeting name" />
  27. 27. <s:datepicker label="Date" name="date"/>
  28. 28. <s:optiontransferselect ... />
  29. 29. <jsp:include page="/ajax/commonInclude.jsp"/>...<s:textarea theme="ajax" label="Description" name="description" rows="4" cols="50" />
  30. 30. But theres more . . .
  31. 31. Brian Kernighan Law ofDebugging 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.
  32. 32. Prevention and Cure
  33. 33. struts.devMode = true
  34. 34. Built-in Testing Supportpublic class MyActionTest extends StrutsTestCase { public void testExecute() throws Exception { assertTrue(true); }}
  35. 35. any.action?debug=console
  36. 36. any.action?profiling=yes
  37. 37. Time to Upgrade?
  38. 38. Tutorials, Guides, and FAQs
  39. 39. Struts 2 Training Course
  40. 40. 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>
  41. 41. How do I get started?
  42. 42. Where We are Going

×