Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Apache Struts 1
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Open-source web application framework}} {{For|the successor of Apache Struts 1|Apache Struts}} {{More footnotes needed|date=April 2009}} {{Infobox software | name = Apache Struts | logo = [[File:Struts logo.gif|frameless|Apache Struts Logo]] | author = [[Craig McClanahan]] | developer = [[Apache Software Foundation]] | released = {{Start date and age|2000|05}} | discontinued = yes | latest release version = 1.3.10 | latest release date = {{Start date and age|2008|12|08}} | replaced_by = [[Apache Struts|Apache Struts 2]] | operating system = [[Cross-platform]] | programming language = [[Java (programming language)|Java]] | platform = [[Cross-platform]] ([[Java Virtual Machine|JVM]]) | license = [[Apache License 2.0]] | website = {{Official URL}} }} '''Apache Struts 1''' is an [[Open-source software|open-source]] [[web application framework]] for developing [[Java EE]] [[web application]]s. It uses and extends the [[Java Servlet]] [[application programming interface|API]] to encourage developers to adopt a [[model–view–controller]] (MVC) architecture. It was originally created by [[Craig McClanahan]] and donated to the [[Apache Foundation]] in May 2000. Formerly located under the Apache [[Jakarta Project]] and known as '''Jakarta Struts''', it became a top-level Apache project in 2005. The WebWork framework spun off from Apache Struts aiming to offer enhancements and refinements while retaining the same general architecture of the original Struts framework. However, it was announced in December 2005 that Struts would re-merge with WebWork. WebWork 2.2 has been adopted as [[Apache Struts|Apache Struts 2]], which reached its first full release in February 2007. In addition to the current and constantly evolving successor version Struts 2, a [[Clone (computing)|clone]] of Struts 1 exists since 2022, which updates the legacy framework of Struts 1 to a current [[Jakarta EE]] compatible stack.<ref>{{cite web|first = Stefan|last = Graff|year = 2024|access-date = 2024-02-13|url = https://github.com/weblegacy/struts1|title = Struts1 - Reloaded|publisher = Github}}</ref> == Design goals and overview == In a standard [[Java Platform, Enterprise Edition|Java EE]] web application, the client will typically call to the server via a [[Form (web)|web form]]. The information is then either handed over to a [[Java Servlet]] which interacts with a database and produces an [[HTML]]-formatted response, or it is given to a [[JavaServer Pages]] (JSP) document that intermingles HTML and Java code to achieve the same result. Both approaches are often considered inadequate for large projects because they mix application logic with presentation and make maintenance difficult. The goal of Struts is to separate the ''model'' (application logic that interacts with a database) from the ''view'' (HTML pages presented to the client) and the ''controller'' (instance that passes information between view and model). Struts provides the controller (a servlet known as <code>ActionServlet</code>) and facilitates the writing of templates for the view or presentation layer (typically in JSP, but [[XML]]/[[Extensible Stylesheet Language Transformations|XSLT]] and [[Jakarta Velocity|Velocity]] are also supported). The web application programmer is responsible for writing the model code, and for creating a central configuration file <code>struts-config.xml</code> that binds together model, view, and controller. Requests from the client are sent to the controller in the form of "Actions" defined in the configuration file; if the controller receives such a request it calls the corresponding Action class that interacts with the application-specific model code. The model code returns an "ActionForward", a string telling the controller what output page to send to the client. Information is passed between model and view in the form of special [[JavaBeans]]. A powerful custom tag library allows it from the presentation layer to read and write the content of these beans without the need for any embedded Java code. Struts is categorized as a [[JSP model 2 architecture|Model 2]] request-based web application framework.<ref>{{cite book|first = Tony|last = Shan| title=2006 IEEE International Conference on e-Business Engineering (ICEBE'06) |year = 2006|access-date = 2010-10-10|chapter-url = http://portal.acm.org/citation.cfm?id=1190953|chapter = Taxonomy of Java Web Application Frameworks| pages=378–385 |publisher = Proceedings of 2006 IEEE International Conference on e-Business Engineering (ICEBE 2006)| doi=10.1109/ICEBE.2006.98 | isbn=0-7695-2645-4 }}</ref> Struts also supports [[Internationalization and localization|internationalization]] by web forms, and includes a template mechanism called "Tiles" that (for instance) allows the presentation layer to be composed from independent header, footer, menu navigation and content components. == See also == *[[Comparison of server-side web frameworks|Comparison of web frameworks]] == References == {{Reflist}} == Bibliography == {{Refbegin}} * [[James Holmes (programmer)|James Holmes]]: <cite>Struts: The Complete Reference</cite>, McGraw-Hill Osborne Media, {{ISBN|0-07-223131-9}} * Bill Dudney and Jonathan Lehr: <cite>Jakarta Pitfalls</cite>, Wiley, {{ISBN|978-0-471-44915-7}} * [[Bill Siggelkow]]: <cite>Jakarta Struts Cookbook</cite>, O'Reilly, {{ISBN|0-596-00771-X}} * [[James Goodwill]], [[Richard Hightower]]: <cite>Professional Jakarta Struts</cite>, [[Wrox Press]], {{ISBN|0-7645-4437-3}} * John Carnell and [[Rob Harrop]]: <cite>Pro Jakarta Struts, Second Edition</cite>, Apress, {{ISBN|1-59059-228-X}} * John Carnell, [[Jeff Linwood]] and [[Maciej Zawadzki]]: <cite>Professional Struts Applications: Building Web Sites with Struts, ObjectRelationalBridge, Lucene, and Velocity</cite>, Apress, {{ISBN|1-59059-255-7}} * [[Ted Husted]], etc.: <cite>Struts in Action</cite>, Manning Publications Company, {{ISBN|1-930110-50-2}} * [http://www.softwaresummit.com/2003/speakers/AshleyStrutsView.pdf Struts View Assembly and Validation], (PDF format). * Stephan Wiesner: <cite>Learning Jakarta Struts 1.2</cite>, Packt Publishing, 2005 {{ISBN|1-904811-54-X}} {{Refend}} == External links == * {{Official website}} {{Application frameworks}} {{Apache Software Foundation}} {{Authority control}} [[Category:Apache Software Foundation projects|Struts 1]] [[Category:Cross-platform free software]] [[Category:Free software programmed in Java (programming language)]] [[Category:Java enterprise platform]] [[Category:Web frameworks]] [[Category:Software using the Apache license]] [[Category:2000 software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Apache Software Foundation
(
edit
)
Template:Application frameworks
(
edit
)
Template:Authority control
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:For
(
edit
)
Template:ISBN
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:More footnotes needed
(
edit
)
Template:Official website
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Template other
(
edit
)