---
layout: main-page
title: Welcome to the Apache Struts project
---

<div class="container hero">
  <div class="jumbotron col-md-12">
    <h1>Apache Struts</h1>
    <p>Apache Struts is a free, open-source, MVC framework for creating elegant,
      modern Java web applications. It favors convention over configuration, is
      extensible using a plugin architecture, and ships with plugins to support
      REST, AJAX and JSON.
    </p>
    <a href="download.cgi#struts{{ site.current_version_short }}" class="btn btn-primary btn-large">
      <img src="img/download-icon.svg"> Download
    </a>
    <a href="primer.html" class="btn btn-info btn-large">
      <img src="img/primer-icon.svg"> Technology Primer
    </a>
  </div>
</div>
<div class="container important-notes">
  <div class="col-md-12">
    <div class="row">
      <div class="column col-md-4">
        <h2>Apache Struts {{ site.current_version }} GA</h2>
        <p>
          Apache Struts {{ site.current_version }} GA has been released<br/>on {{ site.release_date }}.
        </p>
        Read more in <a href="announce.html#a{{ site.release_date_short }}">Announcement</a> or in
        <a href="{{ site.wiki_url }}/Version+Notes+{{ site.current_version }}">Version notes</a>
      </div>
      <div class="column col-md-4">
        <h2>Security Advice S2-061 released</h2>
        <p>
          Forced OGNL evaluation, when evaluated on raw user input in tag attributes, may lead to remote code execution.
          Read more in
          <a href="announce#a20201208">Announcement</a>
        </p>
      </div>
      <div class="column col-md-4">
        <h2>Google's Patch Reward program</h2>
        <p>During <a href="http://www.meetup.com/sfhtml5/">SFHTML5</a> Google announced that
          they extend their program to cover the Apache Struts project as well. Now you can earn
          money preparing patches for us!
          <a href="submitting-patches.html#googles-patch-reward-program">read more</a>
        </p>
      </div>
    </div>
    <div class="row">
      <div class="column col-md-4">
        <h2>Apache Struts 2.3.x EOL</h2>
        <p>
          The Apache Struts Team informs about discontinuing support for Struts 2.3.x branch, we recommend migration
          to the latest version of Struts, read more in
          <a href="announce-2019#a20190912">Announcement</a>
        </p>
      </div>
      <div class="column col-md-4">
        <h2>Apache Struts {{ site.prev_version }} GA</h2>
        <p>
          It's the latest release of Struts 2.3.x which contains the latest security fixes,
          released on {{ site.prev_release_date }}.<br/> Read more in <a href="announce-2019.html#a{{ site.prev_release_date_short }}">Announcement</a> or in
          <a href="{{ site.wiki_url }}/Version+Notes+{{ site.prev_version }}">Version notes</a>
        </p>
      </div>
      <div class="column col-md-4">
        <h2>Immediately upgrade commons-fileupload to version 1.3.3</h2>
        <p>
          The Apache Struts Team recommends to immediately upgrade your Struts 2
          based projects to use the latest released version of Commons
          FileUpload library, which is currently 1.3.3.
          <a href="announce-2018#a20180323">Announcement</a>
        </p>
      </div>
      <div class="column col-md-4">
      </div>
    </div>
  </div>
</div>
<div class="container contact-channels">
  <div class="col-md-12"><h5>Keep in touch: </h5>

    <div class="channels">
      <div class="irc-btn">IRC: <a href="irc://irc.freenode.net/struts">#struts</a></div>
      <div class="facebook-btn">
        <div data-href="https://www.facebook.com/apachestruts" data-width="250" data-layout="button_count"
             data-action="like" data-show-faces="false" data-share="true" class="fb-like"></div>
      </div>
      <div class="gplus-btn">
        <div data-annotation="inline" data-size="medium" data-width="225" data-href="http://struts.apache.org/"
             class="g-plusone"></div>
      </div>
      <div class="twitter-btn"><a href="https://twitter.com/TheApacheStruts" data-show-count="false" data-lang="en"
                                  data-width="240px" data-align="left" class="twitter-follow-button">Follow
        @TheApacheStruts</a></div>
    </div>
  </div>
</div>
