On this page
Overview
Apache Struts is a Java MVC web framework centered on Actions, Interceptors, tag libraries, and an extensible plugin model. Requests are mapped to Actions, cross-cutting behavior is composed through Interceptors, and plugins add capabilities such as REST, JSON, and Spring integration.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Center request handling and view transitions on Actions
URL mappings dispatch requests to Actions, and the result selects a JSP or other view. Parameter binding and validation can be integrated with the same framework lifecycle.
Compose cross-cutting behavior through Interceptors
Authentication, parameter handling, validation, workflow, and other cross-cutting behavior can be composed around Actions through Interceptors and custom interceptor stacks.
Sources: [2]
Best fit
Fits maintenance and extension of Servlet/JSP applications using MVC
Struts is especially relevant for maintaining Action-based applications and enterprise web systems packaged as WAR files for deployment to Servlet containers.
Sources: [2]
Before adoption
Struts 7.4.0 requires Java 17 and Jakarta Servlet API 6+
Struts 7.4.0, released October 2, 2026, is the current best-available GA release. The 7.x line requires Java 17+ and Jakarta Servlet API 6+, so older Java EE containers require migration work.
The 6.12.0 line remains available for Java 8 environments
Struts 6.12.0 was also released on October 2, 2026. The 6.x line has minimum requirements of Java 8, Servlet API 3.1, and JSP API 2.1, so release lines should be chosen according to the deployment platform.
Sources: [5]
Official sources
- [1]Apache Struts(2026-10-03)
- [2]Apache Struts Getting Started(2026-10-03)
- [3]How to create a Struts web application(2026-10-03)
- [4]Struts plugins(2026-10-03)
- [5]Apache Struts announcements 2026(2026-10-03)
- [6]Apache Struts releases(2026-10-03)
Supplemental curator note
For existing Struts systems, identify the active release line and relevant security bulletins before focusing on framework features. For new development or major upgrades, first confirm whether Java 17 and Jakarta Servlet requirements of the 7.x line fit the deployment platform.
Try it in 3 steps
- 1
Generate a blank Struts 7.4.0 application
The Struts 7 line requires Java 17+ and Jakarta Servlet API 6+. Use the Maven archetype to create a minimal application.
mvn archetype:generate -B -DgroupId=example -DartifactId=struts-demo -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-blank -DarchetypeVersion=7.4.0 - 2
Run the generated project's tests
Resolve dependencies and verify that the tests included by the archetype pass.
cd struts-demo && mvn test - 3
Start it with Jetty and open the sample action
After startup, open
http://localhost:8080/struts-demo/example/Welcome.actionin a browser to verify the sample Action response.cd struts-demo && mvn jetty:run
Growth
Growth trends · Last 30 days
1,368 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 72
- Open PRs
- 5
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- java
- struts
- web-framework
- Stars
- 1,368
- Forks
- 871
- Watchers
- 120
- Open issues
- 0
- Contributors
- 88
- Owner type
- Organization
- Primary language
- Java
- License
- Apache-2.0
- Repository last updated
- Oct 2, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- Eclipse Jetty4,097 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Serve HTTP/1, HTTP/2, HTTP/3, WebSocket, and Servlet workloads in standalone or embedded Java deployments
Java - Apache ActiveMQ Classic2,464 Stars
1 shared tag(s) · 1 shared category(s) · Same language
self-host enterprise messaging with a Java broker supporting JMS, AMQP, MQTT, STOMP, and WebSocket transports
Java - Convertigo387 Stars
1 shared tag(s) · 1 shared category(s) · Same language
Build backend connectors, microservices, offline sync, and web or mobile UI in one governed low-code platform
Java - Vue 2212,485 Stars
1 shared tag(s) · 1 shared category(s)
Maintain Vue 2 as an EOL legacy framework while planning Vue 3 migration and security or compliance handling
TypeScript - Next.js143,017 Stars
1 shared tag(s) · 1 shared category(s)
combine React routing, rendering, and server capabilities for full-stack web applications
JavaScript - FastAPI102,770 Stars
1 shared tag(s) · 1 shared category(s)
Unify validation, dependency injection, and OpenAPI around Python type declarations
Python
Report incorrect information
Tell us if any listing information is incorrect or outdated.