Let us see the component and functional
differences between struts 1.x and struts 2.x.
Struts1.x
|
Struts2.x
|
1). In struts 1.x front controller
is ActionServlet
|
1)In 2.x front controller is
FilterDispatcher.
|
2)In struts 1.x we have RequestProcessor
class
|
In 2.x we
have Interceptors instead RequestProcessor will see about this concept later
just remember as of now.
|
In struts 1.x we have multiple tag
libraries like, html, logic, bean..etc
|
In 2.x we do not have multiple libraries,
instead we have single library which includes all tags
|
In struts 1.x the configuration fine name
can be [any name].xml and we used to place in web-inf folder
|
In 2.x the configuration file must be
struts.xml only and this must be in classes folder
|
In struts 1.x we have form beans and
Action classes separately
|
In 2.x form bean, Action classes are
combinedly given as Action class only, of course we can take separately if we
want .
|
In struts 1.x properties file must be
configured in struts-config.xml
|
But in 2.x we need to configure our
resource bundle(s) in struts.properties file
|
In struts 1.x we have programmatic and
declarative validations only
|
In 2.x we have annotations support too
along with programmatic and declarative validations
|
Functional Differences: |
|
In struts 1.x declarative validations are
done by using validation frame work |
In 2.x, declarative validations are done by
using xwork2 frame work by webwork the reason being, its support valuations
through Annotations |
In struts 1.x an Action class is a single
ton class, so Action class object is not a thread safe, as a programmer we
need to make it as thread safe by applying synchronization |
In 2.x an Action class object will be
created for each request, so it is by default thread safe, so we no need to
take care about safety issues here |
In struts 1.x we have only jsp as a view
technology |
In 2.x we have support of multiple view
technologies like velocity, Freemarker, jasper reports, jsp etc… |
In struts 1.x Action class is having servlet dependency, because in execute() method accepts req, res parameter right ! |
Here, In 2.x Action class doesn’t have any
servlet dependency, because its execute() method doesn’t accepts any
parameters, however we can access all servlet objects with dependency
injection |
0 comments:
Post a Comment