You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by lu...@apache.org on 2017/06/01 11:36:04 UTC
svn commit: r1013271 [4/25] - in /websites/production/struts/content: ./
core-developers/ core-developers/attachments/ getting-started/ security/
Added: websites/production/struts/content/core-developers/annotation-workflow-interceptor.html
==============================================================================
--- websites/production/struts/content/core-developers/annotation-workflow-interceptor.html (added)
+++ websites/production/struts/content/core-developers/annotation-workflow-interceptor.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,220 @@
+<!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>AnnotationWorkflowInterceptor</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="annotationworkflowinterceptor">AnnotationWorkflowInterceptor</h1>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=javadoc|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Examples#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=javacode|javadoc=true|lang=java|url=com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>Configure a stack in struts.xml that replaces the PrepareInterceptor with the AnnotationWorkflowInterceptor:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+<interceptor-stack name="annotatedStack">
+ <interceptor-ref name="static-params"/>
+ <interceptor-ref name="params"/>
+ <interceptor-ref name="conversionError"/>
+ <interceptor-ref name="annotationWorkflow"/>
+</interceptor-stack>
+
+</code></pre>
+</div>
+
+<p>Given an Action, AnnotatedAction, add a reference to the AnnotationWorkflowInterceptor interceptor.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+<action name="AnnotatedAction" class="com.examples.AnnotatedAction">
+ <interceptor-ref name="annotationWorkflow"/>
+ <result name="success" type="freemarker">good_result.ftl</result>
+</action>
+
+</code></pre>
+</div>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=example|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.AnnotationWorkflowInterceptor</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/annotations.html
==============================================================================
--- websites/production/struts/content/core-developers/annotations.html (added)
+++ websites/production/struts/content/core-developers/annotations.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,475 @@
+<!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>Annotations</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="annotations">Annotations</h1>
+
+<p>In many places, applications can use Java 5 annotations as an alternative to XML and Java properties configuration. This page serves as a reference for all annotations across the framework.</p>
+
+<p>####Action Annotations####</p>
+
+<p>Since 2.1, these annotations are provided by the <em>Convention Plugin</em> . Codebehind and Zero Config plugins are deprecated from 2.1 on.</p>
+
+<table>
+ <tbody>
+ <tr>
+ </tr>
+ </tbody>
+</table>
+
+<p>Action annotations are available when the framework scans the classpath for Action classes, rather than specifying individual mappings through XML configuration. See the <em>Convention Plugin</em> page for information on how to set up classpath scanning to allow the use of Action annotations.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><em>Actions Annotation</em></td>
+ <td>Group of @Action annotations, maps multiple URLs to the same action</td>
+ </tr>
+ <tr>
+ <td><em>Action Annotation</em></td>
+ <td>Defines the URL of an action</td>
+ </tr>
+ <tr>
+ <td><em>InterceptorRefs Annotation</em></td>
+ <td>Gropup of @InterceptorRef annotations</td>
+ </tr>
+ <tr>
+ <td><em>InterceptorRef Annotation</em></td>
+ <td>Interceptor, or interceptor stack to be applied to at action</td>
+ </tr>
+ <tr>
+ <td><em>Results Annotation</em></td>
+ <td>Group of @Result annotations</td>
+ </tr>
+ <tr>
+ <td><a href="result-annotation.html">Result Annotation</a></td>
+ <td>Defines a result for an action</td>
+ </tr>
+ <tr>
+ <td><a href="namespace-annotation.html">Namespace Annotation</a></td>
+ <td>Set the path of the action URL (used to overwrite the default)</td>
+ </tr>
+ <tr>
+ <td><em>ResultPath Annotation</em></td>
+ <td>Set where the results are located (used to overwrite the default)</td>
+ </tr>
+ <tr>
+ <td><a href="parent-package-annotation.html">ParentPackage Annotation</a></td>
+ <td>Set the parent package of the actions (used to overwrite the default)</td>
+ </tr>
+ <tr>
+ <td><em>ExceptionMappings</em></td>
+ <td>Group of @ExceptionMapping annotations</td>
+ </tr>
+ <tr>
+ <td><em>ExceptionMapping</em></td>
+ <td>Defines an exception mapping</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>####Workflow Annotations####</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="input-config-annotation.html">InputConfig Annotation</a></td>
+ <td>Defines what method to execute, or result to be returned if there are validation errors</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>####Interceptor Annotations####</p>
+
+<p>To use these annotations, you have to specify the <a href="annotation-workflow-interceptor.html">AnnotationWorkflowInterceptor</a> to your interceptor stack.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="after-annotation.html">After Annotation</a></td>
+ <td>Marks a action method that needs to be executed after the result.</td>
+ </tr>
+ <tr>
+ <td><a href="before-annotation.html">Before Annotation</a></td>
+ <td>Marks a action method that needs to be executed before the main action method.</td>
+ </tr>
+ <tr>
+ <td><a href="before-result-annotation.html">BeforeResult Annotation</a></td>
+ <td>Marks a action method that needs to be executed before the result.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>####Validation Annotations####</p>
+
+<p>To use annotation-based validation, annotate the class or interface with <a href="validation-annotation.html">Validation Annotation</a>.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="conversion-error-field-validator-annotation.html">ConversionErrorFieldValidator Annotation</a></td>
+ <td>Checks if there are any conversion errors for a field.</td>
+ </tr>
+ <tr>
+ <td><a href="date-range-field-validator-annotation.html">DateRangeFieldValidator Annotation</a></td>
+ <td>Checks that a date field has a value within a specified range.</td>
+ </tr>
+ <tr>
+ <td><a href="double-range-field-validator-annotation.html">DoubleRangeFieldValidator Annotation</a></td>
+ <td>Checks that a double field has a value within a specified range.</td>
+ </tr>
+ <tr>
+ <td><a href="email-validator-annotation.html">EmailValidator Annotation</a></td>
+ <td>Checks that a field is a valid e-mail address.</td>
+ </tr>
+ <tr>
+ <td><a href="expression-validator-annotation.html">ExpressionValidator Annotation</a></td>
+ <td>Validates an expression.</td>
+ </tr>
+ <tr>
+ <td><a href="field-expression-validator-annotation.html">FieldExpressionValidator Annotation</a></td>
+ <td>Uses an OGNL expression to perform its validator.</td>
+ </tr>
+ <tr>
+ <td><a href="int-range-field-validator-annotation.html">IntRangeFieldValidator Annotation</a></td>
+ <td>Checks that a numeric field has a value within a specified range.</td>
+ </tr>
+ <tr>
+ <td><a href="regex-field-validator-annotation.html">RegexFieldValidator Annotation</a></td>
+ <td>Validates a regular expression for a field.</td>
+ </tr>
+ <tr>
+ <td><a href="required-field-validator-annotation.html">RequiredFieldValidator Annotation</a></td>
+ <td>Checks that a field is non-null.</td>
+ </tr>
+ <tr>
+ <td><a href="required-string-validator-annotation.html">RequiredStringValidator Annotation</a></td>
+ <td>Checks that a String field is not empty.</td>
+ </tr>
+ <tr>
+ <td><a href="string-length-field-validator-annotation.html">StringLengthFieldValidator Annotation</a></td>
+ <td>Checks that a String field is of the right length.</td>
+ </tr>
+ <tr>
+ <td><a href="url-validator-annotation.html">UrlValidator Annotation</a></td>
+ <td>Checks that a field is a valid URL.</td>
+ </tr>
+ <tr>
+ <td><a href="validation-annotation.html">Validation Annotation</a></td>
+ <td>Marker annotation for validation at Type level.</td>
+ </tr>
+ <tr>
+ <td><a href="validations-annotation.html">Validations Annotation</a></td>
+ <td>Used to group validation annotations.</td>
+ </tr>
+ <tr>
+ <td><a href="visitor-field-validator-annotation.html">VisitorFieldValidator Annotation</a></td>
+ <td>Invokes the validation for a propertyâs object type.</td>
+ </tr>
+ <tr>
+ <td><a href="custom-validator-annotation.html">CustomValidator Annotation</a></td>
+ <td>Use this annotation for your custom validator types.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>#####Resources#####</p>
+
+<ul>
+ <li><a href="http://arsenalist\.com/2007/05/10/struts\-2\-validation\-using\-annotations/">Validation using Annotations</a>^[http://arsenalist.com/2007/05/10/struts-2-validation-using-annotations/] (arsenalist)</li>
+</ul>
+
+<p>####Type Conversion Annotations####</p>
+
+<p>By default, type conversion for Maps and Collections using generics is directly supported.</p>
+
+<p>In short, instead of specifying the types found in collections and maps as documented in <a href="type-conversion.html">Type Conversion</a>, <strong>the collectionâs generic type is used</strong>. By using annotations, an application should be able to avoid using any</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>ClassName-conversion.properties
+</code></pre>
+</div>
+<p>files.</p>
+
+<p>To use annotation-based type conversion, annotate the class or interface with the <a href="conversion-annotation.html">Conversion Annotation</a>.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><a href="conversion-annotation.html">Conversion Annotation</a></td>
+ <td>Marker annotation for type conversions at Type level.</td>
+ </tr>
+ <tr>
+ <td><a href="create-if-null-annotation.html">CreateIfNull Annotation</a></td>
+ <td>For Collection and Map types: Create the types within the Collection or Map, if null.</td>
+ </tr>
+ <tr>
+ <td><a href="element-annotation.html">Element Annotation</a></td>
+ <td>For Generic types: Specify the element type for Collection types and Map values.</td>
+ </tr>
+ <tr>
+ <td><a href="key-annotation.html">Key Annotation</a></td>
+ <td>For Generic types: Specify the key type for Map keys.</td>
+ </tr>
+ <tr>
+ <td><a href="key-property-annotation.html">KeyProperty Annotation</a></td>
+ <td>For Generic types: Specify the key property name value.</td>
+ </tr>
+ <tr>
+ <td><a href="type-conversion-annotation.html">TypeConversion Annotation</a></td>
+ <td>Used for class and application wide conversion rules.</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>####Tiles Annotations####</p>
+
+<p>The <em>Tiles Plugin</em> provides itâs own set of Annotations. They can be used to keep</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>tiles.xml
+</code></pre>
+</div>
+<p>short. Instead tiles definitions can be created by annotating actions.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Annotation</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>TilesDefinition</td>
+ <td>Represents a <definition> element in tiles.xml</td>
+ </tr>
+ <tr>
+ <td>TilesDefinitions</td>
+ <td>A list of TilesDefinition Annotations</td>
+ </tr>
+ <tr>
+ <td>TilesPutAttribute</td>
+ <td>Represents a <put-attribute> element in tiles.xml</td>
+ </tr>
+ <tr>
+ <td>TilesPutListAttribute</td>
+ <td>Represents a <put-list-attribute> element in tiles.xml</td>
+ </tr>
+ <tr>
+ <td>TilesAddAttribute</td>
+ <td>Represents a <add-attribute> element in tiles.xml</td>
+ </tr>
+ <tr>
+ <td>TilesAddListAttribute</td>
+ <td>Represents a <add-list-attribute> element in tiles.xml</td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Â </p>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/application-servers.html
==============================================================================
--- websites/production/struts/content/core-developers/application-servers.html (added)
+++ websites/production/struts/content/core-developers/application-servers.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,220 @@
+<!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>Application Servers</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="application-servers">Application Servers</h1>
+
+<p>The framework is known to work well with most application servers. If a serverâs name is linked, then there may be some extra steps to obtain full functionality.</p>
+
+<ul>
+ <li>
+ <p>Jetty</p>
+ </li>
+ <li>
+ <p>JRun</p>
+ </li>
+ <li>
+ <p>OC4J</p>
+ </li>
+ <li>
+ <p>Orion</p>
+ </li>
+ <li>
+ <p>Resin</p>
+ </li>
+ <li>
+ <p><a href="sunone-7-0.html">SunOne 7.0</a></p>
+ </li>
+ <li>
+ <p><a href="jboss-5.html">JBoss 5</a></p>
+ </li>
+ <li>
+ <p><a href="weblogic.html">WebLogic</a></p>
+ </li>
+ <li>
+ <p><a href="weblogic-6-1.html">WebLogic 6.1</a></p>
+ </li>
+ <li>
+ <p><a href="websphere.html">WebSphere</a></p>
+ </li>
+ <li>
+ <p><a href="glassfish-2-x.html">Glassfish 2.x</a></p>
+ </li>
+</ul>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/attachments/att1607_overview.png
==============================================================================
Binary file - no diff available.
Propchange: websites/production/struts/content/core-developers/attachments/att1607_overview.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: websites/production/struts/content/core-developers/attachments/att1846_nutshell.GIF
==============================================================================
Binary file - no diff available.
Propchange: websites/production/struts/content/core-developers/attachments/att1846_nutshell.GIF
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: websites/production/struts/content/core-developers/attachments/att2475_Struts2-Architecture.png
==============================================================================
Binary file - no diff available.
Propchange: websites/production/struts/content/core-developers/attachments/att2475_Struts2-Architecture.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: websites/production/struts/content/core-developers/attachments/struts2-arch.png
==============================================================================
Binary file - no diff available.
Propchange: websites/production/struts/content/core-developers/attachments/struts2-arch.png
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: websites/production/struts/content/core-developers/basic-validation.html
==============================================================================
--- websites/production/struts/content/core-developers/basic-validation.html (added)
+++ websites/production/struts/content/core-developers/basic-validation.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,238 @@
+<!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>Basic Validation</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="basic-validation">Basic Validation</h1>
+
+<p>Letâs configure a basic validation workflow, step by step.</p>
+
+<p>#####Step 1#####</p>
+
+<p>Create the input form.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=basicValidation|javadoc=false|lang=xml|url=struts2/apps/showcase/src/main/webapp/WEB-INF/validation/quiz-basic.jsp</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Step 2#####</p>
+
+<p>Create the Action class.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=quizAction|javadoc=false|lang=java|url=struts2/apps/showcase/src/main/java/org/apache/struts2/showcase/validation/QuizAction.java</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Step 3#####</p>
+
+<p>Create the validators. The</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>validation.xml
+</code></pre>
+</div>
+<p>format is either</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><ActionClassName>-validation.xml
+</code></pre>
+</div>
+<p>or</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><ActionClassName>-<ActionAliasName>-validation.xml
+</code></pre>
+</div>
+<p>.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=quizValidators|javadoc=false|lang=xml|url=struts2/apps/showcase/src/main/resources/org/apache/struts2/showcase/validation/QuizAction-validation.xml</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Step 4#####</p>
+
+<p>Make sure there is a result for âinputâ listed in the struts.xml for when the validation fails:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><action name="HelloWorld" class="tutorial.HelloWorld">
+<result name="success">/tutorial/createconfirm.jsp</result>
+<result name="error">/tutorial/error.jsp</result>
+<result name="input">/tutorial/create.jsp</result>
+</action>
+
+</code></pre>
+</div>
+
+<p>If you donât have this, youâll get a: âNo result defined for action xxx.xxx.tutorial.HellowWorld and result inputâ error</p>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/bean-configuration.html
==============================================================================
--- websites/production/struts/content/core-developers/bean-configuration.html (added)
+++ websites/production/struts/content/core-developers/bean-configuration.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,276 @@
+<!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>Bean Configuration</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="bean-configuration">Bean Configuration</h1>
+
+<p>Internally, the framework uses its own <em>dependency injection</em> container. The container loads key framework objects, so that any piece of the framework can be replaced, extended, or removed in a standard, consistent way. <em>Plugins</em> , in particular, leverage this capability to extend the framework to provide support for third-party libraries like <em>Spring</em> or <em>Sitemesh</em> .</p>
+
+<p>(ok) Most applications wonât need to extend the Bean Configuration.</p>
+
+<p>#####Beans#####</p>
+
+<p>The bean element has one required attribute,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>class
+</code></pre>
+</div>
+<p>, which specifies the Java class to be created or manipulated. A bean can either</p>
+
+<ol>
+ <li>
+ <p>be created by the frameworkâs container and injected into internal framework objects, or</p>
+ </li>
+ <li>
+ <p>have values injected to its static methods</p>
+ </li>
+</ol>
+
+<p>The first use, object injection, is generally accompanied by the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>type
+</code></pre>
+</div>
+<p>attribute, which tells the container which interface this object implements.</p>
+
+<p>The second use, value injection, is good for allowing objects not created by the container to receive framework constants. Objects using value inject must define the the</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>static
+</code></pre>
+</div>
+<p>attribute.</p>
+
+<table>
+ <thead>
+ <tr>
+ <th>Attribute</th>
+ <th>Required</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>class</td>
+ <td><strong>yes</strong></td>
+ <td>the name of the bean class</td>
+ </tr>
+ <tr>
+ <td>type</td>
+ <td>no</td>
+ <td>the primary Java interface this class implements</td>
+ </tr>
+ <tr>
+ <td>name</td>
+ <td>no</td>
+ <td>the unique name of this bean; must be unique among other beans that specify the same type</td>
+ </tr>
+ <tr>
+ <td>scope</td>
+ <td>no</td>
+ <td>the scope of the bean; must be either default, singleton, request, session, thread</td>
+ </tr>
+ <tr>
+ <td>static</td>
+ <td>no</td>
+ <td>whether to inject static methods or not; shouldnât be true when the type is specified</td>
+ </tr>
+ <tr>
+ <td>optional</td>
+ <td>no</td>
+ <td>whether the bean is optional or not</td>
+ </tr>
+ </tbody>
+</table>
+
+<p><strong>Sample usage</strong></p>
+
+<p><strong>Bean Example (struts.xml)</strong></p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>
+<struts>
+
+ <bean type="com.opensymphony.xwork2.ObjectFactory" name="myfactory" class="com.company.myapp.MyObjectFactory" />
+
+ ...
+
+</struts>
+
+</code></pre>
+</div>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/before-annotation.html
==============================================================================
--- websites/production/struts/content/core-developers/before-annotation.html (added)
+++ websites/production/struts/content/core-developers/before-annotation.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,206 @@
+<!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>Before Annotation</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="before-annotation">Before Annotation</h1>
+
+<p>####Before Annotation####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.Before</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Usage#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=usage|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.Before</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Parameters#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.Before</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Examples#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=example|javadoc=true|lang=java|url=com.opensymphony.xwork2.interceptor.annotations.Before</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>
Added: websites/production/struts/content/core-developers/before-result-annotation.html
==============================================================================
--- websites/production/struts/content/core-developers/before-result-annotation.html (added)
+++ websites/production/struts/content/core-developers/before-result-annotation.html Thu Jun 1 11:35:58 2017
@@ -0,0 +1,206 @@
+<!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>BeforeResult Annotation</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="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.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="/downloads.html">Downloads</a></li>
+ <li><a href="/announce.html">Announcements</a></li>
+ <li><a href="http://www.apache.org/licenses/">License</a></li>
+ <li><a href="http://apache.org/foundation/thanks.html">Thanks!</a></li>
+ <li><a href="http://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="/maven/project-info.html">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="/docs/tutorials.html">Tutorials</a></li>
+ <li><a href="/docs/faqs.html">FAQs</a></li>
+ <li><a href="/docs/guides.html">Guides</a></li>
+ <li class="divider"></li>
+ <li><a href="/maven/struts2-core/apidocs/index.html">Struts Core API</a></li>
+ <li><a href="/docs/plugins.html">Plugin APIs</a></li>
+ <li><a href="/docs/tag-reference.html">Tag reference</a></li>
+ <li><a href="http://cwiki.apache.org/S2PLUGINS/home.html">Plugin registry</a></li>
+ <li class="divider"></li>
+ <li><a href="/security/">Security Guide (WIP)</a></li>
+ <li><a href="/core-developers/">Core Developers Guide (WIP)</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 class="divider"></li>
+ <li><a href="/submitting-patches.html">Submitting patches</a></li>
+ <li><a href="/builds.html">Source Code</a></li>
+ <li><a href="/coding-standards.html">Coding standards</a></li>
+ <li class="divider"></li>
+ <li><a href="/releases.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://git-wip-us.apache.org/repos/asf?p=struts.git">Source Repository</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 href="index.html" title="back to Core Developers Guide"><< back to Core Developers Guide</a>
+ <h1 id="beforeresult-annotation">BeforeResult Annotation</h1>
+
+<p>####BeforeResult Annotation####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=description|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.BeforeResult</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Usage#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=usage|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.BeforeResult</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Parameters#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=parameters|javadoc=true|url=com.opensymphony.xwork2.interceptor.annotations.BeforeResult</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+<p>#####Examples#####</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code><span class="p">{</span><span class="err">snippet:id=example|javadoc=true|lang=java|url=com.opensymphony.xwork2.interceptor.annotations.BeforeResult</span><span class="p">}</span><span class="w">
+</span></code></pre>
+</div>
+
+ </section>
+</article>
+
+
+<footer class="container">
+ <div class="col-md-12">
+ Copyright © 2000-2016 <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>
+
+
+<script>
+$(function() {
+ return $("h2, h3, h4, h5, h6").each(function(i, el) {
+ var $el, id;
+ $el = $(el);
+ id = $el.attr('id');
+ if (id) {
+ $el.removeAttr('id');
+ return $el.before($("<a />").addClass('anchor').attr('name', id));
+ }
+ });
+});
+</script>
+
+</body>
+</html>