Jakarta Struts Cookbook

Bill Siggelkow

  • 出版商: O'Reilly
  • 出版日期: 2005-03-05
  • 售價: $1,600
  • 貴賓價: 9.5$1,520
  • 語言: 英文
  • 頁數: 528
  • 裝訂: Paperback
  • ISBN: 059600771X
  • ISBN-13: 9780596007713
  • 已過版




The Jakarta Struts Framework is a popular open source platform for building web applications from top to bottom with Java. While this popularity has led to a wealth of online and in-print documentation, developers still find themselves faced with a number of common tasks that are not clearly and succinctly explained.

In these situations, programmers can now turn to the Jakarta Struts Cookbook an amazing collection of code solutions to common--and uncommon--problems encountered when working with the Struts Framework. Among many other recipes, this book explains how to:

  • display data in complex HTML tables
  • use JSP, the JSTL, and JavaScript in your user interface
  • define static and dynamic action forms
  • validate data and respond to errors
  • use Logging, Validation, and Exception Handling
  • integrate Struts with persistence frameworks like Hibernate and iBATIS

This look-up reference is just what today's time-pressed developers need. With solutions to real-world problems just a few page flips away, information is instantly available. And while the book's solutions focus on getting to the point, each recipe's discussion section imparts valuable concept and insight from a Struts veteran.

The Jakarta Struts Cookbook is perfect for independent developers, large development teams, and everyone in between who wishes to use the Struts Framework to its fullest potential. Plus, it s completely up-to-date with the latest versions of Framework, so readers can be sure the information is viable.


Table of Contents:


1. Getting Started: Enabling Struts Development

      1.1 Downloading Struts  

      1.2 Deploying the Struts Example Application  

      1.3 Migrating from Struts 1.0 to Struts 1.1  

      1.4 Upgrading from Struts 1.1 to Struts 1.2  

      1.5 Converting JSP Applications to Struts  

      1.6 Managing Struts Configuration Files  

      1.7 Using Ant to Build and Deploy  

      1.8 Generating Struts Configuration Files Using XDoclet  

2. Configuring Struts Applications

      2.1 Using Plug-ins for Application Initialization  

      2.2 Eliminating Tag Library Declarations  

      2.3 Using Constants on JSPs  

      2.4 Using Multiple Struts Configuration Files  

      2.5 Factoring Your Application into Modules  

      2.6 Using Multiple Resource Bundles  

      2.7 Accessing Message Resources from a Database  

      2.8 Selectively Disabling Actions  

3. User Interface

      3.1 Using JSTL  

      3.2 Using the Struts-EL Tags  

      3.3 Displaying Indexed Properties  

      3.4 Using Indexed Properties on Forms  

      3.5 Using Indexed Properties in a JSTL Loop  

      3.6 Submitting a Form from an Image   

      3.7 Generating JavaScript on the Fly  

      3.8 Dynamically Changing Select Options Using JavaScript
      3.9 Generating Dynamic Select List Options  

      3.10 Filtering Text Input  

      3.11 Generating a Set of Related Radio Buttons  

      3.12 Handling Unchecked Checkboxes  

      3.13 Handling Date Input Fields  

      3.14 Setting Tab Order  

      3.15 Generating URLs  

      3.16 Adding Request Parameters to a Link  

      3.17 Using Frames  

      3.18 Defeating Browser Caching  

4. Tables, Sorting, and Grouping

      4.1 Creating a Horizontal Bar Chart  

      4.2 Creating a Vertical Bar Chart  

      4.3  Alternating Table Row Colors  

      4.4 Sorting HTML Tables  

      4.5 Paging Tables  

      4.6 Using the Display Tag Library  

5. Processing Forms

      5.1 Creating Dynamic Action Forms  

      5.2 Setting DynaActionForm Initial Values  

      5.3 Using a List-Backed Form Property  

      5.4 Using a Map-Backed Form Property  

      5.5 Lazy Dynamic Action Forms  

      5.6 Populating Value Objects from ActionForms  

      5.7 Automatically Creating ActionForms  

6. Leveraging Actions

      6.1 Creating a Base Action  

      6.2 Relaying Actions  

      6.3 Returning the HTTP Response  

      6.4 Writing Thread-Safe Actions  

      6.5 Forwarding Requests  

      6.6 Including the Response from a Servlet or JSP  

      6.7 Changing the Current Module  

      6.8 Managing Related Operations from a Central Action  

      6.9 Submitting a Form from Localized Form Controls  

      6.10 Dispatching to Related Operations with Action Mappings  

7. Execution Control

      7.1 Performing Tasks at Application Startup  

      7.2 Tracking Client Sessions  

      7.3 Monitoring User Logins  

      7.4 Forwarding Users to Alternate Destinations  

      7.5 Forwarding Users to a Module  

      7.6 Creating a Wizard-Style Page Flow  

      7.7 Determining the Action Based on User Input  

      7.8 Using Wildcards in Action Paths  

      7.9 Preventing Double Form Submissions  

      7.10 Allowing Users to Upload Files  

      7.11 Displaying a File from the Server   

8. Input Validation

      8.1 Reusing Validator Attribute Values  

      8.2 Validating Using Regular Expressions  

      8.3 Validating Dependent Fields in Struts 1.1  

      8.4 Validating Dependent Fields in Struts 1.2  

      8.5 Validating an Indexed Property  

      8.6 Validating Dates  

      8.7 Validating Field Equality with a Custom Validator  

      8.8 Validating Field Equality in Struts 1.2   

      8.9 Validating Two or More Choices  

      8.10 Adding a Custom Validation to a Validator Form  

      8.11 Validating a Wizard Form  

      8.12 Localizing Validation Rules  

9. Exception and Error Handling

      9.1 Simplifying Exception Processing in an Action  

      9.2 Custom Processing for Declared Exceptions  

      9.3 Using Exception Error Codes  

      9.4 Using a Global Error Page  

      9.5 Reporting Errors and Messages from an Action  

      9.6 Formatting Error Messages  

10. Connecting to the Data

      10.1 Accessing JDBC Data Sources from an Action  

      10.2 Displaying Relational Data  

      10.3 Mapping SQL Data to Java Objects  

      10.4 Integrating Struts with Hibernate  

      10.5 Decoupling Your Application from External Services   

      10.6 Integrating Spring with Struts  

      10.7 Loading XML Data into Your Application   

      10.8 Refreshing Application Data  

11. Security

      11.1 Securing Actions Using a Base Action  

      11.2 Checking for User Login on Any Struts Request  

      11.3 Securing a JSP Page  

      11.4 Restricting Actions by Role   

      11.5 Implementing "Remember Me" Logins  

      11.6 Ensuring Security Across Your Entire Application  

      11.7 Allowing a User to Log in Automatically  

      11.8 Limiting Access for Specific URLs by Role  

      11.9 Letting the Container Manage Security  

      11.10 Mixing Application-Managed and Container-Managed Security  

      11.11 Configuring Actions to Require SSL  

      11.12 Limiting the Size of Uploaded Files  

12. Internationalization

      12.1 Detecting Browser Language Settings  

      12.2 Sharing Message Resources with JSTL  

      12.3 Using an Application-Wide Locale  

      12.4 Changing Locale on the Fly  

      12.5 Creating Localized Messages from an Action  

      12.6 Displaying Locale-Specific Text  

      12.7 Displaying Locale-Specific Images  

      12.8 Supporting Character Sets  

      12.9 Localizing Look and Feel  

13. Testing and Debugging

      13.1 Deploying an Application Automatically  

      13.2 Configuring Struts Logging  

      13.3 Adding Logging to Your Own Classes  

      13.4 Enabling Remote Debugging  

      13.5 Troubleshooting JSP Pages  

      13.6 Testing Your Actions with Mock Objects  

      13.7 Testing Your Actions in the Container  

      13.8 Testing Application Functionality  

14. Tiles and Other Presentation Approaches

      14.1 Reusing a Common Page Layout with Tiles  

      14.2 Extending Tile Definitions  

      14.3 Displaying Tiles Using a Struts Forward  

      14.4 Creating Tabbed Panes  

      14.5 Using Tiles for I18N   

      14.6 Using Tiles in a Modular Application  

      14.7 Reusing a Common Page Layout with SiteMesh  

      14.8 Integrating JavaServer Faces with Struts  

      14.9 Integrating Struts and Velocity  

      14.10 Integrating Struts and XSLT