Here in this article, we will be listing frequently asked Struts Interview Questions and Answers with the belief that they will be helpful for you to gain higher marks. Also, to let you know that this article has been written under the guidance of industry professionals and covered all the current competencies.
Struts is a free, MVC-based, open-source framework that helps developers create modern Java applications. This framework prefers convention over configuration and is extensible through a plugin architecture.
Struts was initially built by Craig McClanahan. The first stable version was released in June 2001. Struts 2.0 was released in 2014.
Following are the key components of Struts:
S.no | Spring MVC | Struts |
---|---|---|
1. | Noninvasive | Invasive |
2. | Loosely coupled | Tightly Coupled |
3. | Layered architecture | Not layered architecture |
S.no | Struts 1 | Struts 2 |
---|---|---|
1. | Form beans define properties, setters and getters | Getters and Setters are defined in action classes |
2. | Execute() method exposes servlet API for testing | Dependency Injection simplifies the testing process |
3. | Multiple tag libraries | The single library includes all tags |
4. | RequestProcessor class present | Interceptors present |
Installation process can be divided in four steps that's are given below:
S.no | DispatchAction | LookupDispatchAction |
---|---|---|
1. | Parent class of LookupDispatchAction | Subclass of Dispatch Action |
2. | More useful if not using Internalization function | Useful when using Internalization |
3. | Not useful in I18N | Useful in I18N |
Duplicate form submission can occur when you by refresh the page, press back button, or if there is a virus in your machine.
There are 2 ways to prevent duplicate requests:
ActionServlet is like a "controller" in the MVC architecture for web apps which is known as Model 2. The requests to server pass through the controller, which is responsible for managing requests.
The usual flow in struts begins with the ActionServlet and call to process() method of RequestProcessor.
An ActionForm is a JavaBean that is associated with ActionMappings and handles session state for the apps. The ActionForm object populates automatically on the server side when any set of data is entered on the client side.
If you are preparing for Struts interviews, you can read Struts interview questions and answers for freshers for clarity and insight.
validate() is like a hook that can be overridden by different subclasses for performing validations on incoming data. This method gets called after a Form Bean gets populated with incoming data. This method includes return type ActionErrors.
Syntax is:
public ActionErrors validate(ActionMapping mapping,HttpServletRequest request)
reset() is a method that gets overridden by subclasses. It is a hook that gets summoned before FormBean gets populated with request data from HTML. Using this method, all form fields get reset.
Syntax is:
public void reset() {}
ActionMapping represents the information that is known to RequestProcessor about the mapping of a specific request to a specific Action class. This instance is used to select an Action and then passing on to that Action, thus providing access to configuration information included in the ActionMapping object.
Struts use the model 2 MVC architecture. The controller takes the command design pattern and the action classes have the adapter design pattern. In addition, the process() method of RequestProcessor uses template method design pattern.
This framework also implements the J2EE design patterns:
The Struts framework uses one or more configuration files to load and create required application-specific components. These configuration files allow the components to be declaratively specified, rather than having hardcoded behavior and information. This can give you the flexibility to provide your own extensions. Based on XML format, configuration files can be validated against Struts DTD.
We can configure with the help of few important configuration files like struts.xml, web.xml,strutsconfig.xml and struts.properties
S.no | Validator-rules.xml | Validation.xml |
---|---|---|
1. | Defines standard validation routines | Defines validations that apply to form bean |
2. | For global specific rules | For application specific rules |
3. | Contain logic for validation | Contains types of validation |
Validation error arises when a user enters invalid data format into the form. In order to validate this data, Struts enables the developer or programmer with the Validator() method for validating the data from the client side as well as the server side. You can display errors in the JSP page by using this syntax: SYNTAX: <html:error/>
In Struts, DynaActionForm is a feature which allows the dynamic creation of ActionForm beans through the XML configuration. In such applications, Form beans are virtual and not hard-coded ActionForm classes.
This reduces the tedious process of managing and creating ActionForm classes.
Tiles are used for creating reusable presentation components. When using Tiles, first define a base layout with various sections. Next, define jsp page that should fill the corresponding regions in an external configuration file.
There are two ways to specify definition and attributes of Tiles - JSP Tile Definition and XML Tile Definition.
OGNL or Object-Graph Navigation Language is an open-source Expression Language that allows the navigation of objects (through syntax) for specifying symmetrically settable values. The syntax provides a high level of abstraction for navigating object graphs. This feature allows for simple array manipulation.
Technically, there is no difference between them Apache Struts and Jakarta Struts. They are both similar. Craig McClanahan created Struts and donated it to Apache Foundation. Later, it evolved as a Jakarta project and gained popularity in the J2EE community.
There are 5 core classes in Struts framework:
This is one of the most repeatedly asked Java Struts 1.2 interview questions and answers.
To configure the Struts2 action mapping we have to add an action node inside the configuration file struts.xml
.
Here is an example for this:
<action name="*welcome" class="example.action.mapping.LinkAction" method="execute">
<result name="success">/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
You can use the following technologies in the view layer in Struts:
Struts framework offers a number of built-in validators which are called as bundled validators. These validators are for input validations such as email, phone number, user id.
Struts offer the following bundled validators.
jsonValidation interceptor is utilized to perform AJAX validation.
Field validators
Non-field validators