Apache Struts
| Apache Struts 2 | |
|---|---|
| Apache Struts Logo | |
| Developer | Apache Software Foundation |
| Initial release | October 10, 2006 |
| Stable release | 7.0.3
/ March 7, 2025[1] |
| Repository |
|
| Written in | Java |
| Engine | |
| Operating system | Cross-platform |
| Platform | Cross-platform (JVM) |
| Predecessor | Apache Struts 1 |
| Type | Web framework |
| License | Apache License 2.0 |
Apache Struts 2 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. The WebWork framework spun off from Apache Struts 1 aiming to offer enhancements and refinements while retaining the same general architecture of the original Struts framework. In December 2005, it was announced that WebWork 2.2 was adopted as Apache Struts 2, which reached its first full release in February 2007.[2]
Struts 2 has a history of critical security bugs,[3] many tied to its use of OGNL technology;[4] some vulnerabilities can lead to arbitrary code execution. In October 2017, it was reported that failure by Equifax to address a Struts 2 vulnerability advised in March 2017 was later exploited in the data breach that was disclosed by Equifax in September 2017.[5][6]
Features
[edit | edit source]- Simple POJO-based actions[7]
- Simplified testability
- Thread safe
- AJAX support
- jQuery plugin
- Dojo Toolkit plugin[8] (deprecated)
- Ajax client-side validation
- Template support[9]
- Support for different result types[10]
- Easy to extend with plugins
- REST plugin[11] (REST-based actions, extension-less URLs)
- Convention plugin (action configuration via Conventions and Annotations)
- Spring plugin[12] (dependency injection)
- Hibernate plugin
- Support in design
- JFreechart plugin (charts)
- jQuery plugin (Ajax support, UI widgets, dynamic table, charts)
- Rome plugin
See also
[edit | edit source]Lua error in mw.title.lua at line 392: bad argument #2 to 'title.new' (unrecognized namespace name 'Portal').
Citations
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ About Apache Struts 2 Archived January 14, 2014, at the Wayback Machine
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Newton 2009, p. 9, §1 Struts and Agile Development - Actions.
- ^ Newton 2009, p. 294, §12 Comprehensive Testing - Detour: Struts and Spring in a nutshell.
- ^ Newton 2009, pp. 249–255, §12 Themes and Templates - The REST plug-in.
- ^ Newton 2009, p. 294, §13 Comprehensive Testing - Detour: Struts and Spring in a nutshell.
References
[edit | edit source]- Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
External links
[edit | edit source]- Lua error in Module:Official_website at line 94: attempt to index field 'wikibase' (a nil value).