Name | Scope Plugin |
---|---|
Publisher | Apache Software Foundation |
License | Open Source (ASL2) |
Version | 1.0.4 |
Homepage | http://code.google.com/p/struts2scopeplugin/ |
Download | http://code.google.com/p/struts2scopeplugin/downloads/list |
Source Code | http://code.google.com/p/struts2scopeplugin/source |
Example | http://struts2scopeplugin.googlecode.com/svn/trunk/example/ |
Overview
The Scope plugin INLINE
implements JBoss Seam-style scoped bijection and conversation management
. It allows a user to declaratively define action properties that should be injected via the session before an action executes or properties that should be pushed out to the session after an action executes. It also allows conversations to be defined so that session-scoped variables can be managed better.Features
- An @In annotation that marks action properties that should be injected from the session before an action executes
- An @Out annotation that marks action properties that should be put back into the session after an action executes
- An @Begin annotation that creates a new converstaion
- An @End annotation that ends a conversation and cleans up any variables stored in that conversation
Requirements
- Struts 2.x
Installation
See http://code.google.com/p/struts2plugin-maven-repo/ if you use maven.
For non-maven users, this plugin can be installed by copying the plugin jar into your application's /WEB-INF/lib
directory.
Usage
The scope plugin allows declarative scope management of action properties. Action properties can be scoped to one of several predefined scope. The predefined scopes are:
- REQUEST
- FLASH
- CONVERSATION
- SESSION
- COOKIE
- APPLICATION
- UNSPECIFIED
The scope management functionality is provided by an interceptor which needs to be added to your action's interceptor stack:
Examples
The following example shows how a session managed bean can be automatically be moved from the session to an action property before the action executes and moved from the action to the session after the action executes.
The next example shows how a conversation can be created and destroyed. Currently only a single active conversation is supported. A conversation will automatically be created for variables defined as CONVERSATION scope.
Future Features
- Add support for nested conversations
- Add support for named conversations
- Add support for ConversationIdAware