What is the difference between struts1 and struts2? Posted on by Struts 1 Struts 2 Struts 1 Action classes must extends an abstract base class. Struts 1 Actions are thread safe because they are singletons. Struts 1 Actions are depends on the servlet API because the HttpServletRequest and HttpServletResponse have to be passed in the execute method. Struts 1 use the ActionForm’s object to receive the form input. Struts 1 use the JSTL expression language. Struts 1 uses the standard JSP mechanism for binding objects into the page context. Struts 1 provides less flexible type conversion. Struts 1 uses manual validation by validate method on the ActionForm. Struts 2 Action classes not have to extends any abstract class. They may implement an Action interface. Struts 2 Actions are not thread safe. Struts 2 Actions are not depend on the servlet API. Struts 2 eliminate the need of ActionForm. Struts 2 use the “Object Graph Notation Language” (OGNL) expression language. Struts 2 uses the ValueStack technology for binding values into views. Struts 2 provides more flexible type conversion. Struts 2 allows manual validation by using the validate method. It also the XWork Validation framework. Related topics What is MVC? What is the difference between struts1 and struts2? Explain struts 2 request life cycle. What are the core components of a Struct2 based application? What are the types of validators in struts 2? How tag libraries are defined in Struts? Is Struts thread safe?