Apache Struts 2 Documentation > Home > Overview |

Apache Struts 2 Documentation
Overview
Edit Page Browse Space Add Page Add News
Added by Ted Husted, last edited by Ted Husted on Jul 22, 2006 (view change) show comment hide comment
Comment:
Change overview to an index
View page history

This overview collects the contents page for each area of the documentation.

## Tutorials

## FAQS

### Migrating

- See the Migration Guide

### General

- Where do we get the latest version the framework?
- What are some of the framework's best features?
- Can you suggest an elevator pitch?

### HOWTO

- How can we display dynamic or static images that can be provided as an array of bytes?
- How can we test applications?
- How can we test Actions?
- How do we upload files?
- How can we force the Action Mappings (struts.xml) to reload?

### Configuration

- Can we break up a large struts.xml file into smaller pieces?
- Parameters in configuration results

### Accessing Resources

- How do we get access to the session?
- How can we access the HttpServletRequest?
- How can we access the HttpServletResponse?
- How can we access request parameters passed into an Action?
- How do we access static parameters from an Action?
- Can we access an Action's Result?
- How do I obtain security details (JAAS)?

### Per-Page Settings

- Can I change theme on a per-page basis?
- Can I change templateDir on a per-page basis?
- Can I change templateSuffix on a per-page basis?

### Interceptors

- Why isn't our Prepare interceptor being executed?
- How do we configure an Interceptor to be used with every Action?

### Validation

- Why is my action returning "input" when the form is filled out correctly?
- How do I use messages from within the validator
- How can I fix the "Attribute 'short-circuit'" error message
- How do we repopulate controls when validation fails
- How do I unit test my action's validation logic
- Why does WW ignore my message when its enclosed in CDATA

### Localization

- How do we change locales
- How do I set a global resource bundle
- How do I decouple XWork LocalizedTextUtil global resource bundle loading from serlvets
- How do I add I18N to a UI tag, like the textfield tag
- Can I add I18N outside the Action's context
- How to support UTF-8 URIEncoding with Tomcat
- How do I enable encoding in my forms
- How to escape special chars in resource bundles

### Type Conversion

- How do I change the invalid input error message for a particular field
- Why is the application logging a warning that the Compound Root cannot find a particular Object with a particular property

### Value Stack

- What are the default variables in the value stack

### Tags

- Why do the form tags put table tags around controls?
- How can I put a String literal in a Javascript call, for instance in an onChange attribute?
- Why won't the 'if' tag evaluate a one char string?
- Why does FreeMarker complain that there's an error in my user-directive when I used JSP Tag?
- Can an action tag run another method apart from the default execute method?
- Why didn't my action tag get executed when I have validation errors?
- Why are request parameters appended to our hyperlinks?
- Why doesn't the if tag evaluate test="#parameters.someParam ... " properly

### POJOs

- Should the framework call getModel multiple times as a page renders

### Spring

- How can we create our Action objects from the Spring configuration?
- Why would we want to create Action objects from the Spring configuration?

### Velocity

- I'm trying to run the example in the tutorial on Tomcat, and it can't instantiate the VelocityEngine

### Ajax/Dojo

- IE showing a prompt saying "This page contains both secure and nonsecure items" when using dojo

## Extensions

- Does the framework integrate with Hibernate
- Can we use JSTL with the framework
- Can we use JUnit with the framework
- Can we use TestNG with the framework
- How can we schedule Quartz jobs
- Can we use Acegi Security with the framework

### Portlet Support(JSR168)

- Which portal servers are supported
- How to build the portlet WAR for a specific portal server

### Migrating

- Why is my action unavailable?

## Guides

Our in-depth guides focus on specific areas of the framework, such as Views, the Core framework, and Third-party Extensions.

## Core Developers Guide

In processing a request, the framework utilizes three key class types: Actions, Interceptors, and Results, which are configured using one or more XML documents (or Java 5 annotations).

Essentials AJAX Application Servers Architecture Configuration Files web.xml struts.xml struts.properties struts-default.xml velocity.properties struts-default.vm Struts Configuration Elements Interceptors Result Types DispatcherListener PreResultListener Configuration Provider & Configuration ObjectFactory Action Mapper & Action Mapping Action Proxy & ActionProxy Factory Javadoc (API) | Advanced Wildcard Mappings Type Conversion Validation Localization Action Chaining ActionMapper Profiling Debugging Zero Configuration Dependency Injection Spring Plexus Portlets tutorial configuration Annotations Plugin Registry

## Tag Developers Guide

The framework offers a flexible view layer that supports multiple view technologies, including JSP, FreeMaker, and Velocity.

Struts Tags Generic Tags UI Tags Themes and Templates Tag Reference Ajax Tags OGNL Tag Syntax | JSP specific tags Freemarker specific tags Velocity specific tags

## Plugin Developers Guide

Apache Struts 2 provides a simple plugin architecture so that developers can extend the framework just by adding a JAR to the application's classpath. Since plugins are contained in a JAR, they are easy to share with others. Several plugins are bundled with the framework, and others are available from third-party sources.

- Writing Plugins

### Bundled Plugins

Codebehind Plugin Config Browser Plugin JasperReports Plugin JFreeChart Plugin JSF Plugin Plexus Plugin | SiteGraph Plugin Sitemesh Plugin Spring Plugin Struts 1 Plugin Tiles Plugin

For a complete list of bundled and third-party plugins, visit the Plugin Registry..

## Migration Guide

Getting here from there.

### Release Notes 2.1.x

- Release Notes 2.1.0

### Release Notes 2.0.x

- Release Notes 2.0.6
- Release Notes 2.0.5
- Release Notes 2.0.4
- Release Notes 2.0.3
- Release Notes 2.0.2
- Release Notes 2.0.1
- Release Notes 2.0.0

### Struts 1 to Struts 2

Comparing Struts 1 and 2 | How are Struts 1 and Struts 2 alike? How are they different?
Struts 1 Solutions | Various issues (and hopefully their solutions!) encountered during migrations to Struts 2.
Migration Strategies | Steps and overall strategies for migrating Struts 1 applications to Struts 2.
Migration Tools | Development tools to help aid the migration process.

#### Tutorials

Migrating to Struts 2 | A three-hour workshop by Ted Husted (Oct 2006)
Migrating Applications to Struts 2 | A three-part series by Ian Roughley (Sep 2006)

#### Roadmap

Roadmap FAQ | What's in store for Struts 2?
A History of Struts 2 | Don Brown's summary of events
Struts Reloaded | An archive of the development discussions leading to Struts 2

### Webwork 2.2 to Struts 2

Key Changes From WebWork 2 | What has been removed or changed from WebWork 2.2 to Struts 2
WebWork 2 Migration Strategies | Steps and overall strategies for migrating WebWork 2 applications to Struts 2.

## Contributors Guide

### Source

- Building the Framework from Source
  - Building with Maven
- Creating and Signing a Distribution
- Requirements and Use Cases – under construction
- Precise Error Reporting
- Obtaining an IDEA license
- How to Write Doc Comments for the Javadoc Tool (Sun)

### Documentation

- Editing the Documentation
- Documentation Colophon
- Documentation Style Guide

### Tools

- Clean JIRA Comment Spam

### Licensing and Copyright

- Third Party Licensing Policy RFC
- ASF Source Header and Copyright Notice Policy

## Next: FAQs

## Next: Tutorials

Children Show Children Hide Children
Whiteboard (Apache Struts 2 Documentation)