|
Stripes Takes Struts to the Next Level
by Benoy Jose
For years, Java programmers did not have a common framework to develop Web applications. Struts filled that gap and did a great job at standardizing Web application development. However, Struts has its problemslike maintaining the configuration files, difficulties extending the framework, and difficulties working in a collaborative development environment. The Stripes framework manages to overcome some of the above-mentioned problems, while maintaining the best features of Struts. In this article, you'll learn about some Stripes' features, contrast it with Struts, and learn how a Stripes application works. If you are familiar with basic Struts, learning Stripes should be fairly easy.
Stripes Features
- Annotation-based configuration
- Auto-discovery of action beans and form beans
- Modular and independent development of view and model layers
- Simple installation and configuration
- Easy to extend
- Support for incremental development
- Built-in support for wizard development
- Built-in support for file uploading
File Upload Facility
The Stripes framework provides a built-in file upload facility that allows you to directly upload files through your Web application. The uploaded file is stored in a temporary folder and referenced using a FileBean object. You can use the FileBean object to manipulate the file and its contents, it also allows you to make the file an input stream or save it to a specific location as specified by the File object. It also provides information about the type and size of the file. You can easily add the file upload facility a JSP page using the <stripes:file> tag.
<stripes:file name="myAttachment" />
Scope Management
Stripes exposes the attributes in the session and request through an ActionBeanContext object. You can find this object in the ActionBean and access it readily in a JSP. Like many other frameworks, Stripes provides a redirect-after-post facility that allows you to redirect the user to a different or same page after the data is posted. This ensures that the data is not reposted if the user reloads the page. The downside to this feature is that all the attributes received in the previous post are lost since they were in the request scope. Data from a previous page may be required in some cases and they are usually passed to the next page through hidden variables or session variables. Stripes provides a new type called FlashScope which holds the objects you add to it for the duration of the current request and the next one. Objects in FlashScope usually expire in two minutes.
Validations
Stripes provides basic validation within the framework and supports it through annotations. Instead of writing elaborate validation methods, you can put an annotation in the action class and leave it to Stripes.
@Validate (required=true, minValue=21, maxValue=100)
int temperature;
Stripes performs the basic validation, as indicated in the annotation, and then converts the variable into the right data type if required and finally does any custom validations that are specified.
Page Wizards
Creating page wizards requires no additional configuration except placing the @wizard annotation in the action bean. Stripes will automatically forward the information in the current form as a hidden field to the next page. The hidden fields need to be encrypted for security. You can designate multiple actions based on the required flow by marking them with the wizard annotation and Stripes will automatically handle the flow.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|