<!DOCTYPE html>
<!--
 | Generated by Apache Maven Doxia Site Renderer 1.9.2 from org.apache.maven.plugins:maven-site-plugin:3.9.0:CategorySummaryDocumentRenderer at 2020-04-20
 | Rendered using Apache Maven Fluido Skin 1.9
-->
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <meta name="generator" content="Apache Maven Doxia Site Renderer 1.9.2" />
    <title>Apache Struts &#x2013; Project Information</title>
    <link rel="stylesheet" href="./css/apache-maven-fluido-1.9.min.css" />
    <link rel="stylesheet" href="./css/site.css" />
    <link rel="stylesheet" href="./css/print.css" media="print" />
    <script src="./js/apache-maven-fluido-1.9.min.js"></script>
  </head>
  <body class="topBarDisabled">
    <div class="container-fluid">
      <header>
        <div id="banner">
          <div class="pull-left"><a href="http://www.apache.org/" id="bannerLeft"><img src="http://www.apache.org/images/asf-logo.gif"  alt="Apache Software Foundation"/></a></div>
          <div class="pull-right"><a href="http://struts.apache.org/" id="bannerRight"><img src="http://struts.apache.org/img/struts-logo.svg"  alt="Apache Struts"/></a></div>
          <div class="clear"><hr/></div>
        </div>

        <div id="breadcrumbs">
          <ul class="breadcrumb">
        <li id="publishDate">Last Published: 2020-04-20</li>
      <li id="projectVersion" class="pull-right">Version: 2.6-SNAPSHOT</li>
      <li class="pull-right"><span class="divider">|</span>
<a href="http://struts.apache.org/" class="externalLink" title="Struts">Struts</a></li>
      <li class="pull-right"><a href="http://www.apache.org/" class="externalLink" title="Apache">Apache</a></li>
          </ul>
        </div>
      </header>
      <div class="row-fluid">
        <header id="leftColumn" class="span2">
          <nav class="well sidebar-nav">
  <ul class="nav nav-list">
   <li class="nav-header">Parent Project</li>
    <li><a href="../index.html" title="Struts 2"><span class="none"></span>Struts 2</a></li>
   <li class="nav-header">Project Documentation</li>
    <li class="active"><a href="#"><span class="icon-chevron-down"></span>Project Information</a>
     <ul class="nav nav-list">
      <li><a href="ci-management.html" title="CI Management"><span class="none"></span>CI Management</a></li>
      <li><a href="dependencies.html" title="Dependencies"><span class="none"></span>Dependencies</a></li>
      <li><a href="dependency-info.html" title="Dependency Information"><span class="none"></span>Dependency Information</a></li>
      <li><a href="dependency-management.html" title="Dependency Management"><span class="none"></span>Dependency Management</a></li>
      <li><a href="distribution-management.html" title="Distribution Management"><span class="none"></span>Distribution Management</a></li>
      <li><a href="index.html" title="About"><span class="none"></span>About</a></li>
      <li><a href="issue-management.html" title="Issue Management"><span class="none"></span>Issue Management</a></li>
      <li><a href="licenses.html" title="Licenses"><span class="none"></span>Licenses</a></li>
      <li><a href="mailing-lists.html" title="Mailing Lists"><span class="none"></span>Mailing Lists</a></li>
      <li><a href="modules.html" title="Project Modules"><span class="none"></span>Project Modules</a></li>
      <li><a href="plugin-management.html" title="Plugin Management"><span class="none"></span>Plugin Management</a></li>
      <li><a href="plugins.html" title="Plugins"><span class="none"></span>Plugins</a></li>
      <li><a href="scm.html" title="Source Code Management"><span class="none"></span>Source Code Management</a></li>
      <li><a href="summary.html" title="Summary"><span class="none"></span>Summary</a></li>
      <li><a href="team.html" title="Team"><span class="none"></span>Team</a></li>
     </ul></li>
    <li><a href="project-reports.html" title="Project Reports"><span class="icon-chevron-right"></span>Project Reports</a></li>
   <li class="nav-header">Modules</li>
    <li><a href="struts2-async-plugin/index.html" title="Struts 2 Async Plugin"><span class="none"></span>Struts 2 Async Plugin</a></li>
    <li><a href="struts2-bean-validation-plugin/index.html" title="Struts 2 Bean Validation Plugin"><span class="none"></span>Struts 2 Bean Validation Plugin</a></li>
    <li><a href="struts2-cdi-plugin/index.html" title="Struts 2 CDI Plugin"><span class="none"></span>Struts 2 CDI Plugin</a></li>
    <li><a href="struts2-config-browser-plugin/index.html" title="Struts 2 Configuration Browser Plugin"><span class="none"></span>Struts 2 Configuration Browser Plugin</a></li>
    <li><a href="struts2-convention-plugin/index.html" title="Struts 2 Convention Plugin"><span class="none"></span>Struts 2 Convention Plugin</a></li>
    <li><a href="struts2-dwr-plugin/index.html" title="Struts 2 DWR Plugin"><span class="none"></span>Struts 2 DWR Plugin</a></li>
    <li><a href="struts2-embeddedjsp-plugin/index.html" title="DEPRECATED: Struts 2 Embedded JSP Plugin"><span class="none"></span>DEPRECATED: Struts 2 Embedded JSP Plugin</a></li>
    <li><a href="struts2-gxp-plugin/index.html" title="Struts 2 GXP Plugin"><span class="none"></span>Struts 2 GXP Plugin</a></li>
    <li><a href="struts2-jasperreports-plugin/index.html" title="Struts 2 Jasper Reports Plugin"><span class="none"></span>Struts 2 Jasper Reports Plugin</a></li>
    <li><a href="struts2-javatemplates-plugin/index.html" title="Struts 2 Java Templates Plugin"><span class="none"></span>Struts 2 Java Templates Plugin</a></li>
    <li><a href="struts2-jfreechart-plugin/index.html" title="Struts 2 JFreeChart Plugin"><span class="none"></span>Struts 2 JFreeChart Plugin</a></li>
    <li><a href="struts2-json-plugin/index.html" title="Struts 2 JSON Plugin"><span class="none"></span>Struts 2 JSON Plugin</a></li>
    <li><a href="struts2-junit-plugin/index.html" title="Struts 2 JUnit Plugin"><span class="none"></span>Struts 2 JUnit Plugin</a></li>
    <li><a href="struts2-osgi-plugin/index.html" title="Struts 2 OSGi Plugin"><span class="none"></span>Struts 2 OSGi Plugin</a></li>
    <li><a href="struts2-oval-plugin/index.html" title="Struts 2 OVal Plugin"><span class="none"></span>Struts 2 OVal Plugin</a></li>
    <li><a href="struts2-pell-multipart-plugin/index.html" title="Struts 2 Pell Multipart Plugin"><span class="none"></span>Struts 2 Pell Multipart Plugin</a></li>
    <li><a href="struts2-plexus-plugin/index.html" title="Struts 2 Plexus Plugin"><span class="none"></span>Struts 2 Plexus Plugin</a></li>
    <li><a href="struts2-portlet-plugin/index.html" title="Struts 2 Portlet Plugin"><span class="none"></span>Struts 2 Portlet Plugin</a></li>
    <li><a href="struts2-portlet-mocks-plugin/index.html" title="Struts 2 Portlet Mocks Plugin"><span class="none"></span>Struts 2 Portlet Mocks Plugin</a></li>
    <li><a href="struts2-portlet-tiles-plugin/index.html" title="Struts 2 Portlet Tiles Plugin"><span class="none"></span>Struts 2 Portlet Tiles Plugin</a></li>
    <li><a href="struts2-rest-plugin/index.html" title="Struts 2 REST Plugin"><span class="none"></span>Struts 2 REST Plugin</a></li>
    <li><a href="struts2-sitemesh-plugin/index.html" title="Struts 2 Sitemesh Plugin"><span class="none"></span>Struts 2 Sitemesh Plugin</a></li>
    <li><a href="struts2-spring-plugin/index.html" title="Struts 2 Spring Plugin"><span class="none"></span>Struts 2 Spring Plugin</a></li>
    <li><a href="struts2-testng-plugin/index.html" title="Struts 2 TestNG Plugin"><span class="none"></span>Struts 2 TestNG Plugin</a></li>
    <li><a href="struts2-tiles-plugin/index.html" title="Struts 2 Tiles Plugin"><span class="none"></span>Struts 2 Tiles Plugin</a></li>
    <li><a href="struts2-velocity-plugin/index.html" title="Struts 2 Velocity Plugin"><span class="none"></span>Struts 2 Velocity Plugin</a></li>
  </ul>
          </nav>
          <div class="well sidebar-nav">
            <hr />
            <div id="poweredBy">
              <div class="clear"></div>
              <div class="clear"></div>
              <div class="clear"></div>
<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"><img class="builtBy" alt="Built by Maven" src="./images/logos/maven-feather.png" /></a>
            </div>
          </div>
        </header>
        <main id="bodyColumn"  class="span10" >
<section>
<h2><a name="Project_Information"></a>Project Information</h2>
<p>This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by <a class="externalLink" href="http://maven.apache.org">Maven</a> on behalf of the project.</p><section>
<h3><a name="Overview"></a>Overview</h3>
<table border="0" class="table table-striped">
<tr class="a">
<th>Document</th>
<th>Description</th></tr>
<tr class="b">
<td><a href="ci-management.html">CI Management</a></td>
<td>This is a link to the definitions of all continuous integration processes that builds and tests code on a frequent, regular basis.</td></tr>
<tr class="a">
<td><a href="dependencies.html">Dependencies</a></td>
<td>This document lists the project's dependencies and provides information on each dependency.</td></tr>
<tr class="b">
<td><a href="dependency-info.html">Dependency Information</a></td>
<td>This document describes how to to include this project as a dependency using various dependency management tools.</td></tr>
<tr class="a">
<td><a href="dependency-management.html">Dependency Management</a></td>
<td>This document lists the dependencies that are defined through dependencyManagement.</td></tr>
<tr class="b">
<td><a href="distribution-management.html">Distribution Management</a></td>
<td>This document provides informations on the distribution management of this project.</td></tr>
<tr class="a">
<td><a href="index.html">About</a></td>
<td>Apache Struts 2</td></tr>
<tr class="b">
<td><a href="issue-management.html">Issue Management</a></td>
<td>This document provides information on the issue management system used in this project.</td></tr>
<tr class="a">
<td><a href="licenses.html">Licenses</a></td>
<td>This document lists the project license(s).</td></tr>
<tr class="b">
<td><a href="mailing-lists.html">Mailing Lists</a></td>
<td>This document provides subscription and archive information for this project's mailing lists.</td></tr>
<tr class="a">
<td><a href="modules.html">Project Modules</a></td>
<td>This document lists the modules (sub-projects) of this project.</td></tr>
<tr class="b">
<td><a href="plugin-management.html">Plugin Management</a></td>
<td>This document lists the plugins that are defined through pluginManagement.</td></tr>
<tr class="a">
<td><a href="plugins.html">Plugins</a></td>
<td>This document lists the build plugins and the report plugins used by this project.</td></tr>
<tr class="b">
<td><a href="scm.html">Source Code Management</a></td>
<td>This document lists ways to access the online source repository.</td></tr>
<tr class="a">
<td><a href="summary.html">Summary</a></td>
<td>This document lists other related information of this project</td></tr>
<tr class="b">
<td><a href="team.html">Team</a></td>
<td>This document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.</td></tr></table></section></section>
        </main>
      </div>
    </div>
    <hr/>
    <footer>
      <div class="container-fluid">
        <div class="row-fluid">
<div class="row span12">
            Apache Struts, Struts, Apache, the Apache feather logo, and the Apache Struts project
            logos are trademarks of The Apache Software Foundation.
            </div>
        </div>
      </div>
    </footer>
  </body>
</html>
