Struts2 is one of the mostly used Java Web Application Framework and recently I have wrote a lot about it. Struts2 is built on top of Struts1 and WebWork framework that makes it highly flexible, extendable and easy to maintain.
If you want to learn Struts2 and it’s important features then please read all the below articles in order. All these articles provide framework features in great details and comes with downloadable web application projects.
This is the first article in the series, here you will learn about basics of Struts 2 with brief details about it’s architecture, framework core concepts such as Interceptors, OGNL, Action, Results, wiring the application components etc. The article also provides basic example of Struts2 web application project with XML based configuration.
Java Annotations are becoming popular in most of the Java EE frameworks and Struts2 provides a lot of annotations that we can use to create Struts2 web application with zero configuration i.e. without having struts configuration file. Check out the article to learn about the commonly used annotations in Struts2 framework. The article also provides an example project built with annotations and without having any struts configuration file that you can download and play around.
We can configure Struts2 application to look for result pages at specific location, the article provide brief details about this using XML based configuration as well as annotation based.
A common error faced while working with Struts2 application because of validation failure and there is no result configured for “input” in struts configuration file.
Action classes are at the front of our application and we invest a lot of time in designing and developing action classes. The article explains about four different ways to create action classes in Struts 2 framework. Learn about these ways and which is the good option to chose in your application action classes.
Most of the times we don’t want form bean properties to be part of action classes and we want to have them in a java bean that we can use in action classes. There are two approaches to achieve this – Object-backed and ModelDriven. The article explains about both of these approaches and which is the best approach to use.
We can override ActionSupport validate() method to have form field validation at server side and return the input page with action error messages to show in result pages. Similarly we can add action messages to show in result pages.
Struts2 interceptors are the backbone of the framework and defined in struts-default package. Struts2 interceptors are great example of Chain of Responsibility pattern implementation. This article explains about the working of interceptors and how easily we can create our own interceptor and configure it for action. The article shows how we can achieve authentication across the application with the use of custom interceptors and make our code loosely coupled and achieve flexibility with code reuse.
We can use Struts2 token and tokenSession interceptors to handle multiple form submission problem at server side in the web application. This article explains about these interceptors in detail with a working example.
We can use Struts2 execAndWait interceptor to return an intermediate response page to client incase of long running action classes. Once the action class execution is finished, the final response is returned to the client. This article explains about execAndWait interceptor and how can we use this for long running action classes.
Struts2 uses OGNL expression language for data transfer from request to action classes bean properties and type conversion from String to objects and vice versa in result pages. The article provide details about the usage of OGNL expressions and how we can create our own type converter classes.
Struts2 comes with rich tags that can be categorized into data, control and UI tags. This article provide details about majorly used Struts2 data tags with example project.
Struts2 control tags are used for manipulation and navigation of data from a collection. This article provide details about the Struts2 control tags and how we can use them for conditional flow and iterate over an array or collection. We also learn about some other control tags used to sort list, merge lists, append lists and take subset of list with example project.
Struts2 UI tags are used to generate HTML form elements in result pages. UI tags are also responsible for binding form properties to action class properties. This article provide details about mostly used UI tags with example project.
Struts2 provides strong support for internationalization through I18nInterceptor and resource bundles. This article explains about i18n support in Struts2 framework with different locations of resource bundles with example project.
File uploading is one of the common tasks in the web application. That’s why Struts2 provides FileUploadInterceptor interceptor that we can use to upload Single as well as multiple files on the server without using any third party tools. The article explains about this interceptor in detail with example project to upload files on server.
Sometimes we want to have access to Servlet API components such as Session, Request and Response in action classes. Struts2 provides a bunch of *Aware interfaces that we can implement in action classes to inject Servlet API components in action classes.
This article explains how we can integrate log4j with Struts2 framework in our web application for logging purposes.
Struts2 provide convenient ways to configure error pages for exceptions thrown by our application at global package level as well as action level. Again this is done by Struts2 exception interceptor that is part of defaultStack. Check out this post for example project with usage details.
There are more articles to come in Struts2 series, do bookmark this post for future reference.