Struts 2 is a Java
enterprise application framework for constructing web applications. It was
created by the Apache Software Foundation. In the year 2006, it was first
released. It's written in the Java programming language. It is cross-platform
compatible. It is built on the MVC architecture, which is a software design
paradigm for creating applications. Struts 2 includes features such as
simplified testability, Ajax support, Thread-safety, and Template support,
among others.
Apache Cassandra Interview Questions and Answers
Ques. 1): What exactly is Struts2?
Answer:
Apache Struts2 is a Java web application framework that is free source. The
OpenSymphony WebWork framework is the foundation for Struts2. It's a
significant improvement over Struts1, making it more adaptable, simple to use,
and extendable. Action, Interceptors, and Result pages are the three main
components of Struts2.
Struts2 offers a variety of options for creating Action classes
and configuring them using struts.xml or annotations. For common jobs, we can
make our own interceptors. Struts2 includes a large number of tags and makes
use of the OGNL expression language. To render result pages, we can design our own
type converters. JSPs and FreeMarker templates can be used as result pages.
Apache Camel Interview Questions and Answers
Ques. 2): What are some of Struts2's features?
Answer:
Here are some of the fantastic features that can persuade you to
use Struts2.
POJO forms and POJO actions − Struts2 has done away with the Action Forms that were an
integral part of the Struts framework. With Struts2, you can use any POJO to
receive the form input. Similarly, you can now see any POJO as an Action class.
Tag support − Struts2 has improved the form tags and the new tags allow the
developers to write less code.
AJAX support − Struts2 has recognised the take over by Web2.0 technologies,
and has integrated AJAX support into the product by creating AJAX tags, that
function very similar to the standard Struts2 tags.
Easy Integration − Integration with other frameworks like Spring, Tiles and
SiteMesh is now easier with a variety of integration available with Struts2.
Template Support − Support for generating views using templates.
Plugin Support − The core Struts2 behaviour can be enhanced and augmented
by the use of plugins. A number of plugins are available for Struts2.
Apache Ant
Interview Questions and Answers
Ques. 3): What's the difference between Struts 1 and Struts 2?
Answer:
This is a list of the most common Strut 2 interview questions. The
action class in Strut 1 is not a POJO, hence it must inherit the abstract
class. An action servlet is used as the front controller. Only JSP is used for
the component view. A configuration file can be inserted in the WEB-INF
directory in section 1. When processing requests, it makes use of the Request
Processor class. Actions and models are separated in Strut 1.
The action class in Strut 2 is a POJO, therefore there's no need
to inherit any classes or implement any interfaces. For the view component, it
has JSP, free-market, and so on. The function controller in strut 2 is the
Struts Prepare and Execute filter. In this, a configuration file must be named
as struts.xml and placed inside the classes directory. It uses the concept of
Interceptors while processing the request. In strut 2, action and models are
combined within the action class.
Apache Tomcat
Interview Questions and Answers
Ques. 4): In Struct2, What Is The Use Of Struts.properties?
Answer:
This configuration file allows you to override the framework's
default behaviour. In fact, all of the properties in the struts.properties
configuration file can be defined in the web.xml using the init-param, as well
as in the struts.xml configuration file using the constant tag. However, if you
prefer to keep things separate and more struts specific, you can create this
file in the WEB-INF/classes folder. The default values configured in
default.properties, which is included in the struts2-core-x.y.z.jar
distribution, will be overridden by the values configured in this file.
Apache Kafka
Interview Questions and Answers
Ques. 5): Explain The Life Cycle Of A Request In Struct2
Application?
Answer :
Following is the life cycle of a request in Struct2 application −
- User sends a request
to the server for requesting for some resource (i.e pages).
- The FilterDispatcher
looks at the request and then determines the appropriate Action.
- Configured
interceptors functionalities applies such as validation, file upload etc.
- Selected action is
executed to perform the requested operation.
- Again, configured
interceptors are applied to do any post-processing if required.
- Finally the result is
prepared by the view and returns the result to the user.
Apache Tapestry
Interview Questions and Answers
Ques. 6): What are the inbuilt themes that are provided by strut
2?
Answer:
There are 3 different inbuilt themes:
Simple theme: It is a minimal theme which is having very little content. It
means that the text field tag renders the HTML tag without label, validation,
error reporting or any other formatting or functionality.
XHTML theme: It is referred to as the default theme used by struts 2 and
provides all the basics that a simple theme provides. It adds the other several
features like standard two-column table layout for the HTML labels for each of
the HTML, validation and error reporting etc.
Css_xhtml theme: This is the theme that provides all the basics that the simple
theme provides, and it adds other several features like the standard two-column
CSS-based layout and using div tag for HTML struts tags, labels for each of the
HTML struts tags and placed according to the CSS style sheet.
Apache Ambari
interview Questions & Answers
Ques. 7): What is internationalization and how does it work?
Answer:
This is one of the most common Struts 2 Interview Questions that
is asked during an interview. Localization refers to the process of planning
and implementing products and services so that they may be easily modified to
specific local languages and cultures, whereas internationalization refers to
the act of enabling localization.
Apache Hive
Interview Questions & Answers
Ques. 8): What is the difference between an interceptor and a
filter?
Answer:
The interceptors are built around struts 2. It runs for all
requests that qualify for a servlet filter front controller and can be
customised to run extra interceptors for specific action execution. Interceptor
methods can be configured to execute or not to execute using exclude and
include methods.
Servlet specifications are used to create the filters. Executes on
request and non-configurable method calls if the pattern matches.
Apache Spark
Interview Questions & Answers
Ques. 9): Explain struts 2's XML-based validation.
Answer:
XML-based validation in Struts 2 adds more validation options,
such as email validation, integer range validation, form validation field,
expression validation, regex validation, needed validation, string length
validation, and necessary string validation, among others. The XML file must be
titled 'actionclass'-validation.xml in Struts 2.
Apache NiFi
Interview Questions & Answers
Ques. 10): How Does Validation in Struts 2 Work?
Answer:
When the user clicks the submit button, Struts 2 will run the
validate method, and if any of the if statements inside the method are true,
Struts 2 will call the addFieldError method. Struts 2 will not proceed to
invoke the execute method if any errors have been introduced. The Struts 2
framework, on the other hand, will return input as a result of calling the
action.
When validation fails and Struts 2 returns input, the view file is
redisplayed by the Struts 2 framework. Because we utilised Struts 2 form tags,
the error messages will appear directly above the completed form.
These are the error messages we specified in the call to the
addFieldError function. The addFieldError method takes two arguments. The first
is the form field name to which the error applies and the second is the error
message to display above that form field.
Ques. 11): What Types Of Validations Are Available In Xml Based
Validation In Struts2?
Answer:
Following is the list of various types of field level and non-field
level validation available in Struts2 −
- date validator
- double validator
- email validator
- expression validator
- int validator
- regex validator
- required validator
- requiredstring
validator
- stringlength validator
- url validator
Ques. 12): How Does Struts 2's Interceptor Work?
Answer:
The actual action will be performed by calling invocation.invoke()
from the interceptor. So, depending on your needs, you can conduct some
pre-processing and some post-processing.
The framework initiates the process by using the invoke method on
the ActionInvocation object (). When invoke() is called, ActionInvocation
consults its state and performs the next available interceptor. The invoke()
method will cause the action to be executed once all of the configured interceptors
have been invoked.
Ques. 13): What Is Value Stack?
Answer :
The value stack is a set of several objects which keeps the
following objects in the provided order −
Temporary Objects − There are various temporary objects which are created
during execution of a page. For example the current iteration value for a
collection being looped over in a JSP tag.
The Model Object − If you are using model objects in your struts application,
the current model object is placed before the action on the value stack.
The Action Object − This will be the current action object which is being
executed.
Named Objects − These objects include #application, #session, #request,
#attr and #parameters and refer to the corresponding servlet scopes.
Ques. 14): What Is The Difference Between Valuestack And OGNL?
Answer:
ValueStack is the storage space where Struts2 stores application data
for processing client requests. The information is saved in ActionContext objects
that use ThreadLocal to store values that are unique to each request thread.
OGNL (Object-Graph Navigation Language) is a sophisticated Expression
Language for manipulating data on the ValueStack. Both interceptors and result
pages can use OGNL to access data stored on ValueStack, as shown in the
architectural diagram.
Ques. 15): What Is The Struts-default Package And How Does It
Help?
Answer:
Struts-default is an abstract package that specifies all of the
Struts2 interceptors as well as the most widely used interceptor stack. To
prevent having to configure interceptors twice, it's best to extend this
package while configuring our application package. This is provided to assist
developers by making the work of configuring interceptor and result pages in
our application a lot easier.
Ques. 16): What Is The Purpose Of @after Annotation?
Answer :
The @After annotation marks a action method that needs to be
called after the main action method and the result was executed. Return value
is ignored.
public class Employee extends ActionSupport{
@After
public void isValid() throws ValidationException
{
// validate model object,
throw exception if failed
}
public String execute() {
// perform secure action
return SUCCESS;
}
}
Ques. 17): What Is The Purpose Of @before Annotation?
Answer :
The @Before annotation marks a action method that needs to be
called before the main action method and the result was executed. Return value
is ignored.
public class Employee extends ActionSupport{
@Before
public void isAuthorized() throws
AuthenticationException {
// authorize request, throw
exception if failed
}
public String execute() {
// perform secure action
return SUCCESS;
}
}
Ques. 18): What Is The Difference Between Using An Action
Interface And Using An Actionsupport Class For Our Action Classes, And Which
Would You Prefer?
Answer:
To develop our action classes, we can use the Action interface.
This interface only has one function, execute(), which we must implement. The
main advantage of utilising this interface is that it includes some constants
that can be used on result pages, such as SUCCESS, ERROR, NONE, INPUT, and
LOGIN.
The ActionSupport class implements the Action interface by
default, as well as interfaces for Validation and i18n support. Action,
Validateable, ValidationAware, TextProvider, and LocaleProvider are all
implemented by the ActionSupport class. To implement field level validation
login in our action classes, we can override the validate() method of the
ActionSupport class.
Depending on the requirements, we can use any of the approaches to
create struts 2 action classes, my favorite is ActionSupport class because it
helps in writing validation and i18n logic easily in action classes.
Ques. 19): How Do We Get Servlet Api Requests, Responses,
Httpsessions, and Other Objects Into Action Classes?
Answer:
Servlet API components such as Request, Response, and Session are
not directly accessible through Struts2 action classes. However, in some action
classes, such as checking the HTTP method or adding cookies in the response,
these accesses are required.
As a result, the Struts2 API exposes a number of *Aware interfaces
through which we can access these objects. Struts2 API injects Servlet API
components into action classes using dependency injection. SessionAware,
ApplicationAware, ServletRequestAware, and ServletResponseAware are some of the
most essential Aware interfaces.
Ques. 20): Is Struts2 Interceptors And Action Thread Safe?
Answer:
Because an object is instantiated for each request to process,
Struts2 Action classes are thread safe.
Because Struts2 interceptors are singleton classes that launch a
new thread to handle the request, they are not thread safe, and we must
construct them carefully to avoid any shared data concerns.
No comments:
Post a Comment