Table of Contents
Preface
Chapter 1: Introduction to Seam
Chapter 2: Developing Seam Applications
Chapter 3: Seam Page Flow
Chapter 4: Facelets
Chapter 5: Testing Seam Applications
Chapter 6: RichFaces
Chapter 7: Database Persistence
Chapter 8: Seam Conversations
Chapter 9: Seam and AJAX
Chapter 10: Security
Chapter 11: Enterprise Features
Appendix: JBoss Tools
Index
- Chapter 1: Introduction to Seam
- What is Seam?
- Why use Seam?
- Seam requirements
- Installing JBoss Application Server
- Starting the JBoss Application Server
- Installing Seam
- Testing our Seam installation
- Start the JBoss Application Server
- Deploy the sample application
- Run the sample application
- Summary
- Chapter 2: Developing Seam Applications
- Seam application architecture
- Seam components
- Object Injection and Outjection
- Example application
- WAR file deployment descriptors
- EAR file deployment descriptors
- Application layout
- Testing the application
- Building and deploying the application
- Seam data validation
- Data validation
- The JSF messages collection
- Building and testing the validating Seam calculator
- Summary
- Chapter 3: Seam Page Flow
- Simple navigation
- Seam style navigation
- Defining a page flow in pages.xml
- <page> element
- <navigation> element
- <rule> element
- Error handling
- Executing code before rendering pages
- Defining a page flow in pages.xml
- A working example
- <s:selectItems/> and <s:convertEnum />
- Rendering the options in the sample application
- Running the sample application
- Seam jPDL navigation
- Summary
- Chapter 4: Facelets
- What is Facelets?
- Why Facelets? Why not JSP?
- Templating
- Template parameters
- Performance
- EL functions
- XHTML
- No scriptlets
- Templating
- Obtaining and installing Facelets
- Configuring a web application for Facelets
- Changes in the web.xml file
- Changes in the faces-config.xml file
- Example Facelets files from the previous chapter
- SeamGen
- Creating the Vacation Planner application using SeamGen
- Seam debug page
- Summary
- Chapter 5: Testing Seam Applications
- Overview of Seam application testing
- TestNG
- Component testing
- Testing the user interface
- Seam component testing
- Mocking Seam components
- Summary
- Chapter 6: RichFaces
- Obtaining RichFaces
- Configuring an application for RichFaces
- Add JAR files to the web application
- Configuring the application's XML resources
- RichFaces controls
- <rich:calendar />
- JavaScript methods
- <rich:panel />
- JavaScript methods
- <rich:calendar />
- <rich:modalPanel />
- JavaScript methods
- <rich:simpleTogglePanel />
- JavaScript methods
- <rich:fileUpload />
- JavaScript methods
- <rich:gmap />
- JavaScript methods
- <rich:dataTable />
- JavaScript methods
- Summary
- Chapter 7: Database Persistence
- Overview of database persistence
- How SeamGen helps with persistence
- Persisting Java entities to the database
- Retrieving Java entities from the database
- Integrating Java entities with Facelets
- Relationships between entities
- One-to-one relationships
- One-to-many and many-to-one relationships
- Many-to-many relationships
- Performing CRUD operations on entities
- The Seam application framework
- Home objects
- Accessing home objects from Facelets
- XML definition of home objects
- Query objects
- Accessing query objects from Facelets
- XML definition of query objects
- Home objects
- Summary
- Chapter 8: Seam Conversations
- Component scope
- Local variables
- HTTP session data
- Global variables
- Seam component scope
- Defining the scope of a Seam component
- What are conversations?
- Starting a conversation
- Automatically starting a conversation when a page is viewed
- Ending a conversation
- Automatically ending a conversation when a page is viewed
- Propagating conversations between Windows
- Propagating conversations
- Viewing conversations
- Starting a conversation
- Conversation configuration
- Conversation parameter
- Conversation timeout
- Concurrent request timeout
- Natural conversations
- Setting up a natural conversation
- Summary
- Component scope
- Chapter 9: Seam and AJAX
- What is AJAX?
- AJAX and the Seam Framework
- Configuring Seam applications for Seam Remoting
- Configuring Seam Remoting server side
- Configuring Seam Remoting client side
- Invoking Seam components via Remoting
- Debugging Seam Remoting
- The org.jboss.seam.remoting.remoting component
- The <remoting:remoting> component
- Logging
- Changing the Please wait message
- AJAX4JSF
- Configuring an application for AJAX4JSF
- AJAX4JSF tags
- <a4j:commandButton />
- <a4j:commandLink />
- <a4j:poll />
- Summary
- Chapter 10: Security
- User authentication
- Security authenticator
- Persisting user information
- Creating an authenticator
- Securing web pages
- Creating a logon form
- Redirecting to the requested page after login
- Security authenticator
- User roles
- Implement a role class
- Add required Seam annotations
- Assign a set of roles to a user
- Restricting user interface access via roles
- Auditing security events
- CAPTCHAs
- The Seam identity manager API
- Creating a user with the identity manager
- Specifying security rules
- Defining security roles with rules
- OpenID
- Configuring a Seam web application to support OpenID
- Configure an OpenID phase listener
- Ensure that the correct JAR files are on the application's classpath
- Write a Logon form
- Configure page redirection after an OpenID logon
- The OpenID logon process
- Summary
- User authentication
- Chapter 11: Enterprise Features
- Internationalization
- Defining the application languages
- Write application-specific strings
- Display language-specific strings
- Dynamically changing the localization
- Persisting the localization settings
- SeamGen support for localization
- Displaying Hibernate Validator messages
- URL rewriting
- Enabling URL rewriting
- Seam events
- Raising events
- Raising events with @RaiseEvent
- Raising events with org.jboss.seam.core.Events
- Observing events
- Raising events
- PDF document generation
- PDF required configuration
- Generating PDFs
- <p:document />
- <p:paragraph />
- <p:text />
- <p:font />
- <p:table /> and <p:cell />
- <p:html />
- Email
- Configuring the SMTP settings
- Writing an email template
- <m:from />
- <m:to />
- <m:subject />
- <m:body />
- <m:attachment />
- Sending an email
- The future of Seam
- Summary
- Internationalization
- Appendix: JBoss Tools
- Overview of JBoss Tools
- Installing JBoss Tools
- Creating Seam projects
- Managing Seam projects
- JSP / Facelet editor
- Pages.xml editor
- Components.xml editor
- Running Seam projects
- Summary



