Differences between struts 1.x and struts 2.x
Let us see the component and functional differences between struts 1.x and 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