| | Copyright |
| | About the Authors |
| | Acknowledgments |
| | We Want to Hear from You! |
| | Introduction |
| | | Who Should Read This Book? |
| | | What Do You Need to Bring to the Table? |
| | | What Does This Book Cover? |
| | | Tools You'll Need |
| | | How This Book Is Organized |
| | | The Companion Web Site |
| | | Conventions Used in This Book |
| | | Updates and Corrections |
|
| | Chapter 1. Struts in Context |
| | | The Parable of the Carpenter |
| | | What Is Struts? |
| | | State of Struts: Where Things Are Right Now |
| | | Faces Behind the Code: Struts Development |
| | | Where Struts Is Going |
| | | Conclusions |
|
| | Chapter 2. The Model-View-Controller Design Pattern: 'Model 2' JSP Development |
| | | The Model-View-Controller Design Pattern |
| | | The Origins of Model 1 / Model 2 |
| | | How Struts Implements the Model 2 Pattern |
| | | Conclusions |
|
| | Chapter 3. Hello World!: A First Struts Application |
| | | Hello World! Application Requirements |
| | | Applying the Model-View-Controller Pattern |
| | | The View Component: The HTML Form and the Form Bean |
| | | MessageResources and Application.properties Files |
| | | The Struts Form Bean: HelloForm.java |
| | | Data Validation and ActionError s |
| | | The Controller Component: HelloAction.java |
| | | The Model Component ( HelloModel.java ) |
| | | Passing Data to the View Using Attributes: Constants.java |
| | | Tying It All Together: The struts-config.xml File |
| | | Conclusions |
|
| | Chapter 4. HTTP Protocol: Web Application Communications and Control |
| | | HTTP Protocol and the Request/Response Cycle |
| | | Control Information: HTTP Headers and HTTP Response Codes |
| | | HTTP Cookies and Session/User Management |
| | | Conclusions |
|
| | Chapter 5. JSP, Taglibs, and JSTL: Extending Java onto the Page |
| | | Servlets and JSP |
| | | Object Scoping with JSP |
| | | Hiding Business Logic Using Beans |
| | | JSP Custom Tags |
| | | Web Application Deployment |
| | | JSTL: The Standard Tag Library |
| | | JSP and J2EE: The Big Picture |
| | | J2EE and Struts |
| | | Conclusions |
|
| | Chapter 6. The Sample Application: A Financial Portfolio |
| | | Requirements: Covering Your Rear End |
| | | Starting with the Wireframes |
| | | Developing Use Cases |
| | | Data Sources and Storage |
| | | Choosing Technologies |
| | | Conclusions |
|
| | Chapter 7. View Components: What the End User Sees |
| | | The ActionForm |
| | | JSP Files: The Alpha and the Omega |
| | | The Perils of Automatic Type Conversion |
| | | The html:errors Tag |
| | | Internationalization |
| | | Conclusions |
|
| | Chapter 8. The Controller: Directing the Action |
| | | The Action Class |
| | | Accessing the Session and Other Form Beans |
| | | User Validation and Struts |
| | | Transferring Control Inside and Outside the Application |
| | | Conclusions |
|
| | Chapter 9. Model Components: Modeling the Business |
| | | Well-Designed Models |
| | | Further Isolation Techniques |
| | | Conclusions |
|
| | Chapter 10. The struts-config.xml File: Tying All the Pieces Together |
| | | The struts-config DTD |
| | | The Configuration File in Context |
| | | Conclusions |
|
| | Chapter 11. How the Struts Tag Libraries Work: The View from Inside |
| | | Review of JSP Tag Libraries |
| | | Understanding How Struts Tags Work: The <bean:page> Tag |
| | | Comparison to the Java Standard Tag Library |
| | | Conclusions |
|
| | Chapter 12. Struts HTML Tags: Page Construction and Form Processing |
| | | Struts Tags, JSP Custom Tags, and Java Scriptlets: What's the Right Balance? |
| | | Using Struts HTML Tags to Render Basic HTML Elements |
| | | The Basics of Form Processing |
| | | Check Boxes and Radio Buttons |
| | | Drop Downs and Select/Option Lists |
| | | Input Validation and <html:errors> |
| | | Uploading a File Using <html:file> |
| | | Conclusions |
|
| | Chapter 13. Struts Bean Tags: Storing and Passing Data |
| | | Using Struts Bean Tags That Access Aspects of the Servlet Context |
| | | Using Struts Bean Tags That Access Java Resources |
| | | Using Struts Bean Tags That Access Bean Properties |
| | | Conclusions |
|
| | Chapter 14. Struts Logic Tags: Conditional Presentation Logic |
| | | Using Struts Logic Tags That Perform Conditional Display Based on a Value |
| | | Using Struts Logic Tags That Match Substrings |
| | | Using the Struts Logic Tags for Iteration |
| | | Using the Struts Logic Tags to Test for Absence or Presence of Values |
| | | Using the Struts Logic Tags to Transfer Control |
| | | Conclusions |
|
| | Chapter 15. The Nested and Template Struts Tag Libraries: Handling Subproperties and Inserting Content |
| | | Using the Struts Nested Tags |
| | | Using the Struts Template Tags |
| | | Conclusions |
|
| | Chapter 16. The Struts Tiles Tag Library: Creation Master Document Templates |
| | | A Tiles Overview |
| | | Enabling Tiles |
| | | The Definitions Configuration File |
| | | Writing JSP Files for Tiles |
| | | Modifying Your Actions |
| | | Putting It All Together |
| | | Other Aspects of Tiles |
| | | Conclusions |
|
| | Chapter 17. DynaForm s and the Validator |
| | | DynaForm s: Forms Without Java |
| | | The Validator: Automating Field Checking |
| | | Conclusions |
|
| | Chapter 18. Using Struts with Enterprise JavaBeans |
| | | EJBs Fit with Model Components |
| | | Quick Review of EJB Technologies |
| | | Using Different EJB Types with Struts |
| | | A Struts/EJB Sample Application |
| | | Conclusions |
|
| | Chapter 19. Using Struts with Web Services |
| | | Web Services Fit with Struts Model Components |
| | | A Quick Review of Web Service Technologies |
| | | How to Use Struts with a Web Service |
| | | A Struts/Web Service Sample Application |
| | | Conclusions |
|
| | Chapter 20. Building, Deploying, and Testing Struts Applications |
| | | An Integrated and Incremental Build/Test Cycle: It's Extreme! |
| | | Building and Deploying Struts Applications Using Jakarta Ant |
| | | Developing a build.xml File for Building Struts Applications Using Ant |
| | | Extreme Struts Development with Integrated and Ongoing Testing |
| | | Mock Object Testing Using JUnit, StrutsTestCase, and Ant |
| | | In-Container Testing Using Cactus, JUnit, StrutsTestCase, and Ant |
| | | Conclusions |
|
| | Appendix A. Installing Struts and the Sample Applications from the CD |
| | | Listing of Applications Included on the Companion CD-ROM |
| | | Step 1: Install the JDK and Tomcat |
| | | Step 2: Install MySQL |
| | | Copy the WAR Files to the Tomcat webapps Directory |
| | | Restart Tomcat |
|
| | Index |