Pro Apache Struts with Ajax
Язык: Английский
Год публикации: 2006
Автор(ы): J.Carnell, R.Harrop
Страниц: 502
Краткое содержание
- What We Do Wrong: Web Antipatterns Explained
- Struts Fundamentals
- Form Presentation and Validation with Struts
- Managing Business Logic with Struts
- Architecting the Data Access Tier with ObjectRelationalBridge
- Building Flexible Front-Ends with the Tiles Framework
- Dynamic Forms and the Struts Validator Framework
- Speeding Struts Development with XDoclet
- Logging and Debugging
- Velocity Template Engine
- Extending the Struts Framework
- Struts and Ajax
- APPENDIX A JavaEdge Setup and Installation
- APPENDIX B Struts Development Tools
- APPENDIX C Struts and Strecks
Полное содержание
- What We Do Wrong: Web Antipatterns Explained
- What This Book Is About
- What This Chapter Is About
- Challenges of Web Application Development
- Enterprise Services
- Application Services
- An Introduction to Patterns and Antipatterns
- Web Application Antipatterns
- Concern Slush
- Tier Leakage
- Hardwired
- Validation Confusion
- Tight-Skins
- Data Madness
- Antipatterns, JOS Frameworks, and Economics
- The JavaEdge Application
- Summary
- Struts Fundamentals
- The JavaEdge Application Architecture
- The Design
- Using Struts to Implement the MVC Pattern
- Getting Started: The JavaEdge Source Tree
- The Power of the Command Pattern
- Constructing the Presentation Tier
- The JavaEdge Home Page
- Bean Tags
- Logic Tags
- Iteration Tags
- Conditional Tags
- Movement Tags
- Form Presentation and Validation with Struts
- Problems with Form Validation
- Using Struts for Form Validation
- Implementing Form Validation with Struts
- The struts-config.xml File
- Struts ActionForm Class
- Prepopulating an ActionForm with Data
- Another Technique for Prepopulation
- Prepopulating a Form the Correct Way
- Validating the Form Data
- The Struts HTML Tag Library
- Setting Up a Struts HTML Form
- Using Text and TextArea Input Fields
- Drop-Down Lists, Checkboxes, and Radio Buttons
- Building More Dynamic ActionForms
- ActionForms and Business Logic
- Summary
- Managing Business Logic with Struts
- Business Logic Antipatterns and Struts
- Concern Slush and Struts
- Tier Leakage and Struts
- Separating Business Logic from Struts
- Implementing the Design Patterns
- Implementing the Business Delegate Pattern
- Implementing the Service Locator Pattern
- The Service Locator Revisited
- EJBs and Struts
- Handling Exceptions in the Action Class
- Exception Handling in Struts 1.0.x
- Exception Handling in Struts 1.1 and Later
- Rewriting the ApplicationException Class
- Setting Up the struts-config.xml File
- Writing a Custom ExceptionHandler
- Summary
- Architecting the Data Access Tier with ObjectRelationalBridge
- Developing a Data Access Strategy
- The JavaEdge Data Access Model
- The JavaEdge Value Objects
- Using an O/R Mapping Tool
- Setting Up the Object/Relational Mappings
- Which Sequence Manager to Use?
- OJB in Action
- Retrieving Data: A Simple Example
- Retrieving Data: A More Complicated Example
- Storing Data Using OJB
- Deleting Data with OJB
- Bringing It All Together
- Summary
- Building Flexible Front-Ends with the Tiles Framework
- What Is the Tiles Framework?
- Enabling Struts Version 1.1 to Use Tiles
- Configuring the Tiles Plug-In
- The tiles-defs.xml File
- Adding the Tiles TLDs
- Your First Tiles Template
- What Are Tiles Definitions?
- Tiles Definitions: A JSP-Based Approach
- Overriding the Attribute Values in a Tiles Definition
- Using Dummy Values in Your Tiles Definition
- Disadvantages of JSP Tiles Definitions
- Anatomy of the tiles-defs.xml File
- Inheritance Using Tiles Definitions
- Extending a Tiles Definition
- Modifying the template.jsp File
- Adding the New Definition to tiles-defs.xml
- Modifying the .homePage Definition
- Mapping Tiles Definitions to Action Forwards
- Summary
- Dynamic Forms and the Struts Validator Framework
- Introducing Dynamic Forms
- Defining the postStoryForm Struts Form Bean
- Writing the PostStoryDynaForm.java Implementation
- Some Thoughts About BeanUtils and the Preceding Code
- The Jakarta Commons Validator Framework
- Validator Framework Setup
- Implementing the Required Fields Validation
- The maxlength Validation Rule
- Use the Validator Framework Within an ActionForm Class
- Writing Your Own Validation Rules
- Implementing the Vulgarity Rule
- Adding the Vulgarity Rule to the validator-rules.xml File
- Struts Validation and Potential Long-Term Consequences
- Implementing the Vulgarity Rule in a Form
- An ActionForm Without Java
- When to Use the Validator Framework
- Summary
- Speeding Struts Development with XDoclet
- Installing XDoclet
- What Exactly Is XDoclet?
- From XDoclet to Source, and All the Steps in Between
- The Available XDoclet Tags
- Anatomy of an XDoclet Tag
- Integrating Ant and XDoclet
- XDoclet and Struts
- Declaring Struts Form Beans
- Declaring Struts Actions
- XDoclet and Java Inheritance
- Declaring Application Exceptions
- Building struts-config.xml Using <webdoclet..../>
- XDoclets and the Validator Framework
- Generating the Validator Tags from Ant
- Summary
- Logging and Debugging
- Why Use Logging?
- Simple Web Application Logging
- Logging with ServletContext
- Using Commons Logging
- The Java 1.4 Logging API
- Apache log4j
- Using log4j with Commons Logging
- Log Inheritance
- Logging Performance
- Logging Best Practices
- JBoss and log4j
- Integrating Logging into JavaEdge
- Logging in the Web Tier
- Debugging Struts Applications Using JBoss and Eclipse
- Debugging the JavaEdge Application
- Hot-Deploy
- Debugging the Struts Framework
- Velocity Template Engine
- What Is a Template Engine?
- Getting Started
- Velocity and VelocityContext Classes
- Velocity Template Language
- Accessing Variables
- Variable Values
- JavaBean Properties
- Arithmetic
- Directives
- Macros
- Struts and Velocity
- VelocityTools
- Struts and Velocity
- Best Practices for Velocity Use
- Know When to Use #parse and When to Use #include
- Use JavaBean Property Names
- Extending the Struts Framework
- Extending Action and ActionForm
- Providing Common Services to Your Actions
- Hooking into the Action Execution
- Extending RequestProcessor
- Building a RequestProcessor
- Using RequestProcessor Instead of Filter
- Verifying Host Access with RequestProcessor
- Creating Configuration Beans
- Building the JavaEdgeActionMapping
- Revisiting RequestProcessor
- Building a Plug-In
- Newsletter Service Basics
- NewsletterManager
- NewsletterTask
- NewsletterPlugIn
- Configuring the Plug-In
- Summary
- Struts and Ajax
- Ajax Dissected
- Ajax on Google
- Ajax on Yahoo
- Where Should I Use Ajax?
- Ajax and Web 2.0
- Ajax and SOA
- Ajax Internals
- Ajax Request-Response Cycle
- XMLHttpRequest Object
- Ajax and Struts in Action
- Cities.jsp
- GetCitiesNamesAction
- CitiesDAO
- Summary
- APPENDIX A JavaEdge Setup and Installation
- Environment Setup
- Installing MySQL
- Installing JBoss
- Installing Apache Ant
- Obtaining the JavaEdge Code and Dependencies
- Installing the JavaEdge Database
- Building JavaEdge
- Deploying JavaEdge
- Summary
- APPENDIX B Struts Development Tools
- Eclipse
- Eclipse Summary
- Eclipse Next Step
- NetBeans
- JSP, HTML, XML, and DTD Editors
- In-Process Tomcat Server
- NetBeans Summary
- NetBeans Next Step
- IBM WebSphere
- Creating a Struts Project
- Managing Configuration
- Creating Actions and ActionForms
- Web Diagrams
- WebSphere Summary
- WebSphere Next Step
- Borland JBuilder 2006
- Web Projects
- Configuration File Editor
- JSP Editor
- UML Designer
- JavaDoc Preview
- Action Designer
- JBuilder Summary
- JBuilder Next Step
- Struts Console
- Getting Started
- Editing the Struts Configuration File
- Editing Other Configuration Files
- Struts Console Summary
- Struts Console Next Step
- Exadel Studio
- Struts Projects
- Configuration File Editors
- XML Editor
- JSP Editor
- Web Flow Designer
- Exadel Studio Summary
- Exadel Studio Next Step
- XDoclet
- Apache JMeter
- Getting Started
- Features
- Creating a Sample Test
- JMeter Summary
- JMeter Next Step
- APPENDIX C Struts and Strecks
- Using Strecks
- @Controller and @ActionInterface
- @NavigateForward
- @BindSimple and @ValidateRequired
- What You Can Do with Strecks
- Is Strecks for Me?
|
книга просто никакая. Не тратьте времени
Слово "Ajax" добавлено просто для привлечения внимания. Apress, казалось бы, серьезный издатель, а выпускает такую муру.