Sunday, June 9, 2013

Differences between struts 1.x & struts 2.x


component and functional differences between struts 1.x  & struts 2.x

 In struts 1.x front controller is ActionServlet      In 2.x front controller is FilterDispatcher    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 bla bla    In struts 1.x Action class is having servlet dependency, because in execute() method accepts req, res parameter right ! so.      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  

No comments:

Post a Comment