<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8"/>
  <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
  <meta name="Date-Revision-yyyymmdd" content="20140918"/>
  <meta http-equiv="Content-Language" content="en"/>
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

  <title>Download a Release</title>

  <link href="//fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,400italic,600italic,700italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <link href="/css/main.css" rel="stylesheet">
  <link href="/css/custom.css" rel="stylesheet">
  <link href="/highlighter/github-theme.css" rel="stylesheet">

  <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
  <script type="text/javascript" src="/bootstrap/js/bootstrap.js"></script>
  <script type="text/javascript" src="/js/community.js"></script>
</head>
<body>

<a href="http://github.com/apache/struts" class="github-ribbon">
  <img style="position: absolute; right: 0; border: 0;" src="https://s3.amazonaws.com/github/ribbons/forkme_right_red_aa0000.png" alt="Fork me on GitHub">
</a>

<header>
  <nav>
    <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" data-toggle="collapse" data-target="#struts-menu" class="navbar-toggle">
            Menu
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="/index.html" class="navbar-brand logo"><img src="/img/struts-logo.svg"></a>
        </div>
        <div id="struts-menu" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Home<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/index.html">Welcome</a></li>
                <li><a href="/download.cgi">Download</a></li>
                <li><a href="/releases.html">Releases</a></li>
                <li><a href="/announce.html">Announcements</a></li>
                <li><a href="http://www.apache.org/licenses/">License</a></li>
                <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Support<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/mail.html">User Mailing List</a></li>
                <li><a href="https://issues.apache.org/jira/browse/WW">Issue Tracker</a></li>
                <li><a href="/security.html">Reporting Security Issues</a></li>
                <li class="divider"></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Migration+Guide">Version Notes</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Security+Bulletins">Security Bulletins</a></li>
                <li class="divider"></li>
                <li><a href="/maven/project-info.html">Maven Project Info</a></li>
                <li><a href="/maven/struts2-core/dependencies.html">Struts Core Dependencies</a></li>
                <li><a href="/maven/struts2-plugins/modules.html">Plugin Dependencies</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Documentation<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/birdseye.html">Birds Eye</a></li>
                <li><a href="/primer.html">Key Technologies</a></li>
                <li><a href="/kickstart.html">Kickstart FAQ</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Home">Wiki</a></li>
                <li class="divider"></li>
                <li><a href="/getting-started/">Getting Started</a></li>
                <li><a href="/security/">Security Guide</a></li>
                <li><a href="/core-developers/">Core Developers Guide</a></li>
                <li><a href="/tag-developers/">Tag Developers Guide</a></li>
                <li><a href="/maven-archetypes/">Maven Archetypes</a></li>
                <li><a href="/plugins/">Plugins</a></li>
                <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
                <li><a href="/tag-developers/tag-reference.html">Tag reference</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/FAQs">FAQs</a></li>
                <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
              </ul>
            </li>
            <li class="dropdown">
              <a data-toggle="dropdown" href="#" class="dropdown-toggle">
                Contributing<b class="caret"></b>
              </a>
              <ul class="dropdown-menu">
                <li><a href="/youatstruts.html">You at Struts</a></li>
                <li><a href="/helping.html">How to Help FAQ</a></li>
                <li><a href="/dev-mail.html">Development Lists</a></li>
                <li><a href="/contributors/">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/submitting-patches.html">Submitting patches</a></li>
                <li><a href="/builds.html">Source Code and Builds</a></li>
                <li><a href="/coding-standards.html">Coding standards</a></li>
                <li><a href="https://cwiki.apache.org/confluence/display/WW/Contributors+Guide">Contributors Guide</a></li>
                <li class="divider"></li>
                <li><a href="/release-guidelines.html">Release Guidelines</a></li>
                <li><a href="/bylaws.html">PMC Charter</a></li>
                <li><a href="/volunteers.html">Volunteers</a></li>
                <li><a href="https://gitbox.apache.org/repos/asf?p=struts.git">Source Repository</a></li>
                <li><a href="/updating-website.html">Updating the website</a></li>
              </ul>
            </li>
            <li class="apache"><a href="http://www.apache.org/"><img src="/img/apache.png"></a></li>
          </ul>
        </div>
      </div>
    </div>
  </nav>
</header>


<article class="container">
  <section class="col-md-12">
    <a class="edit-on-gh" href="https://github.com/apache/struts-site/edit/master/source/download.html" title="Edit this page on GitHub">Edit on GitHub</a>
    
    <h1>Download a Release of Apache Struts</h1>

<p>
  The Apache Struts web framework is a free open-source solution for creating
  Java web applications.
</p>

<p>
  You can start with Apache Struts using <a href="//maven.apache.org">Apache Maven</a> and optionally provided
  <a href="/maven-archetypes/">archetypes</a> for easier dependency management and version upgrade.
  Or download some of distributions for fully offline development.
</p>

<p>
  Use the links below to download a release of Apache Struts from one of our mirrors. You can
  <a href="#verify">verify the integrity</a> of the downloaded files using signatures downloaded from our
  main distribution directory.
</p>

<h2 id="mirror">Mirror</h2>

<p>
  [if-any logo]
  <a href="[link]">
    <img align="right" src="[logo]" border="0" alt="logo"/>
  </a>
  [end]
  The currently selected mirror is <b>[preferred]</b>. If you encounter a problem with this mirror,
  please select another mirror. If all mirrors are failing, there are <i>backup</i>
  mirrors (at the end of the mirrors list) that should be available.
</p>

<form action="[location]" method="get" id="SelectMirror">
  Other mirrors:
  <select name="Preferred">
    [if-any https]
    [for https]
    <option value="[https]">[https]</option>
    [end]
    [end]
    [if-any ftp]
    [for ftp]
    <option value="[ftp]">[ftp]</option>
    [end]
    [end]
    [if-any backup]
    [for backup]
    <option value="[backup]">[backup] (backup)</option>
    [end]
    [end]
  </select>
  <input type="submit" value="Change"/>
</form>

<p>
  You may also consult the
  <a href="https://www.apache.org/mirrors/">complete list of
    mirrors.</a>
</p>

<h2 id="struts-ga">Full Releases</h2>

<h3 id="struts2526">Struts 2.5.26</h3>

<p>
  <a href="https://struts.apache.org/">Apache Struts 2.5.26</a> is an elegant, extensible
  framework for creating enterprise-ready Java web applications. It is available in a full distribution,
  or as separate library, source, example and documentation distributions.
  Struts 2.5.26 is the "best available" version of Struts in the 2.5 series.
</p>

<ul>
  <li>
    <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.26">Version Notes</a>
  </li>

  <li>Full Distribution:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-all.zip">struts-2.5.26-all.zip</a> (65MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-all.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-all.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Example Applications:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-apps.zip">struts-2.5.26-apps.zip</a> (35MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-apps.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-apps.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Essential Dependencies Only:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-min-lib.zip">struts-2.5.26-min-lib.zip</a> (4MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-min-lib.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-min-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>All Dependencies:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-lib.zip">struts-2.5.26-lib.zip</a> (19MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-lib.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Documentation:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-docs.zip">struts-2.5.26-docs.zip</a> (13MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-docs.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-docs.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/2.5.26/struts-2.5.26-src.zip">struts-2.5.26-src.zip</a> (7MB)
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-src.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/2.5.26/struts-2.5.26-src.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

</ul>

<h3 id="struts-23x">Struts 2.3.37</h3>

<ul>
  <li>
    <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.37">Version Notes</a>
  </li>

  <li>Full Distribution:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-all.zip">struts-2.3.37-all.zip</a> (65MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-all.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-all.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Example Applications:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-apps.zip">struts-2.3.37-apps.zip</a> (35MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-apps.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-apps.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Essential Dependencies Only:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-min-lib.zip">struts-2.3.37-min-lib.zip</a> (4MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-min-lib.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-min-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>All Dependencies:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-lib.zip">struts-2.3.37-lib.zip</a> (19MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-lib.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-lib.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Documentation:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-docs.zip">struts-2.3.37-docs.zip</a> (13MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-docs.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-docs.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-src.zip">struts-2.3.37-src.zip</a> (7MB)
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-src.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/2.3.37/struts-2.3.37-src.zip.sha256">SHA256</a>]
      </li>
    </ul>
  </li>

</ul>

<h3 id="struts-extras">Struts Extras</h3>

<ul>
  <li>
    <a href="https://github.com/apache/struts-extras">README</a>
  </li>

  <li>Apache Struts 2 Secure Jakarta Multipart parser plugin:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar">
          struts2-secure-jakarta-multipart-parser-plugin-1.1.jar
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1.jar.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip">
          struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-multipart-parser-plugin/1.1/struts2-secure-jakarta-multipart-parser-plugin-1.1-source-release.zip.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Apache Struts 2 Secure Jakarta Stream Multipart parser plugin:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar">
          struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1.jar.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="[preferred]struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip">
          struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip
        </a>
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.md5">MD5</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.asc">PGP</a>]
        [<a href="https://downloads.apache.org/struts/struts-extras/struts2-secure-jakarta-stream-multipart-parser-plugin/1.1/struts2-secure-jakarta-stream-multipart-parser-plugin-1.1-source-release.zip.sha1">SHA1</a>]
      </li>
    </ul>
  </li>

</ul>

<h2 id="prior-releases">Prior releases</h2>
<p>
  If you are looking for other versions than above please check <a href="https://archive.apache.org/dist/struts/">the Apache Archive</a> site.
</p>

<h3 id="struts1310">Struts 1.3.10</h3>

<p>
  <a href="https://struts.apache.org/struts1eol-announcement.html">Struts 1.3.10 - EOL</a>
  is the latest production release of Struts 1. It is available in a full distribution, or as
  separate library, source, example and documentation distributions.
</p>

<p>
  <b>Important: </b>
  <a href="struts1eol-announcement.html">Apache Struts 1 EOL Announcement</a>, including a detailed Q/A section
</p>

<ul>

  <li>Full Distribution:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-all.zip">struts-1.3.10-all.zip</a>
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-all.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-all.zip.md5">MD5</a>]
      </li>
    </ul>
  </li>

  <li>Library:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-lib.zip">struts-1.3.10-lib.zip</a>
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-lib.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-lib.zip.md5">MD5</a>]
      </li>
    </ul>
  </li>

  <li>Source:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-src.zip">struts-1.3.10-src.zip</a>
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-src.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-src.zip.md5">MD5</a>]
      </li>
    </ul>
  </li>

  <li>Examples:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-apps.zip">struts-1.3.10-apps.zip</a>
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-apps.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-apps.zip.md5">MD5</a>]
      </li>
    </ul>
  </li>

  <li>Documentation:
    <ul>
      <li>
        <a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-docs.zip">struts-1.3.10-docs.zip</a>
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-docs.zip.asc">PGP</a>]
        [<a href="https://archive.apache.org/dist/struts/1.3.10/struts-1.3.10-docs.zip.md5">MD5</a>]
      </li>
    </ul>
  </li>

</ul>

<h2 id="strutsarchive">Older Releases</h2>
<p>
  Older versions of Struts are available from the <a href="https://archive.apache.org/dist/struts/">Archive Site.</a>
</p>

<h2 id="verify">Verify the integrity of the files</h2>

<p>
  We recommend that you verify the integrity of the downloaded files using the PGP or MD5/SHA256 signatures.
</p>

<p>
  The PGP signatures can be verified using PGP or GPG.
  First download the
  <a href="https://downloads.apache.org/struts/KEYS">KEYS</a> as well as the <code>asc</code>
  signature file for the particular distribution.
  Make sure you get these files from the <a href="https://downloads.apache.org/struts/">main distribution directory,</a>
  rather than from a mirror. Then verify the signatures using
</p>

<p>
  <code>
    % pgpk -a KEYS
    <br/>
    % pgpv ${filename}.tar.gz.asc
    <br/>
  </code>
  <em>or</em>
  <br/>
  <code>
    % pgp -ka KEYS
    <br/>
    % pgp ${filename}.tar.gz.asc
    <br/>
  </code>
  <em>or</em>
  <br/>
  <code>
    % gpg --import KEYS
    <br/>
    % gpg --verify ${filename}.tar.gz.asc ${filename}.tar.gz
  </code>
</p>

<p>
  Alternatively, you can verify the MD5 signature on the files. A Unix program called <code>md5</code>
  or <code>md5sum</code> is included in many Unix distributions. It is also available as part of
  <a href="https://www.gnu.org/software/textutils/textutils.html"> GNU Textutils.</a>
  Windows users can get binary md5 programs from <a href="https://www.fourmilab.ch/md5/">here,</a>
  <a href="http://www.pc-tools.net/win32/freeware/console/"> here,</a>
  or <a href="https://www.slavasoft.com/fsum/">here.</a>
</p>

  </section>
</article>


<footer class="container">
  <div class="col-md-12">
    Copyright &copy; 2000-2018 <a href="http://www.apache.org/">The Apache Software Foundation </a>.
    All Rights Reserved.
  </div>
  <div class="col-md-12">
    Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project logos are
    trademarks of The Apache Software Foundation.
  </div>
  <div class="col-md-12">Logo and website design donated by <a href="https://softwaremill.com/">SoftwareMill</a>.</div>
</footer>

<script>!function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (!d.getElementById(id)) {
    js = d.createElement(s);
    js.id = id;
    js.src = "//platform.twitter.com/widgets.js";
    fjs.parentNode.insertBefore(js, fjs);
  }
}(document, "script", "twitter-wjs");</script>
<script src="https://apis.google.com/js/platform.js" async="async" defer="defer"></script>

<div id="fb-root"></div>

<script>(function (d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s);
  js.id = id;
  js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>


</body>
</html>
