This is an automated email from the ASF dual-hosted git repository.

lukaszlenart pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/master by this push:
     new ee1bdd84c Update Results page (#172)
ee1bdd84c is described below

commit ee1bdd84ca234acf5c50d579292554c702422298
Author: Lukasz Lenart <lukaszlen...@apache.org>
AuthorDate: Wed Oct 19 16:04:58 2022 +0200

    Update Results page (#172)
    
    * Cleans up navigation and content
    
    * Explains how to use results
    
    * Cleans up content
    
    * Includes _site again
    
    * Adds missing parent header
    
    * Excludes _site
    
    * Lists folder
    
    * Stops using docker
    
    * Reverts build to version before starts using Docker
    
    * Fixes typo in env name
    
    * Defines envs in script
    
    * Avoids using env prefix
    
    * Sets proper envs
    
    * Reverts to Docker again
    
    * List folders after Docker ends
    
    * Performs all git operations in Docker
    
    * Puts back Docker
    
    * Cleans up workspace and add missing git user data
    
    * Uses local git config
    
    * Builds with Docker and moves content out of Docker
    
    * Uses full path
    
    * Uses context path
    
    * Maps dedicated folder to store generated site
    
    * Uses Dockerfile with dedicate UID
    
    * Uses proper dockerfile syntax in pipeline
    
    * Moves building site into pipeline
    
    * Defines proper WORKSPACE env
    
    * Moves building commands back to pipeline
    
    * Uses proper GID
    
    * Reverts to non-Docker build
    
    * Stops installing ruby
    
    * Pushes changed Gemfile.lock
    
    * Adds remote refs where to push
    
    * Adds branch to push
    
    * Shows bundler version
    
    * Show git changes
    
    * Restores Gemfile.lock
    
    * Uses checkout to restore file
    
    * Adds ToC
    
    * Cleans up page
    
    * Cleans up page
---
 Gemfile.lock                                       |   1 +
 Jenkinsfile                                        |  30 ++--
 source/core-developers/chain-result.md             |   4 +-
 source/core-developers/dispatcher-result.md        |   4 +-
 .../execute-and-wait-interceptor.md                | 152 +++++++++++----------
 source/core-developers/freemarker-result.md        |   4 +-
 source/core-developers/httpheader-result.md        |   4 +-
 source/core-developers/plain-result.md             |   4 +-
 source/core-developers/plaintext-result.md         |   4 +-
 source/core-developers/postback-result.md          |  88 +++---------
 source/core-developers/redirect-action-result.md   |   4 +-
 source/core-developers/redirect-result.md          |   4 +-
 source/core-developers/result-types.md             |  55 ++++++--
 source/core-developers/stream-result.md            |   4 +-
 source/core-developers/velocity-result.md          |   3 +
 source/core-developers/xsl-result.md               |   4 +-
 source/plugins/index.md                            |  53 +++----
 17 files changed, 214 insertions(+), 208 deletions(-)

diff --git a/Gemfile.lock b/Gemfile.lock
index f82d005c9..712360637 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -59,6 +59,7 @@ GEM
     unicode-display_width (1.8.0)
 
 PLATFORMS
+  x86_64-darwin-21
   x86_64-linux-musl
 
 DEPENDENCIES
diff --git a/Jenkinsfile b/Jenkinsfile
index ef5004548..e1a29e778 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -10,20 +10,24 @@ pipeline {
     disableConcurrentBuilds()
     skipStagesAfterUnstable()
   }
+  environment {
+    RUBY_PATH="${env.WORKSPACE}/.rvm"
+    GEM_HOME="${RUBY_PATH}/gems"
+    PATH="${GEM_HOME}/bin:${RUBY_PATH}/bin:${env.PATH}"
+  }
   stages {
     stage('Build a staged website') {
-      agent {
-        docker {
-          image 'jekyll/builder:4.2.2'
-        }
-      }
       steps {
         sh '''
-          export GEM_HOME="$WORKSPACE/.gems"
-          export PATH="$GEM_HOME/bin:$PATH"
-          export BUNDLE_USER_HOME="$WORKSPACE/.bundle"
+          echo Generating a new version of website        
+
+          curl -sSL https://get.rvm.io | bash -s -- --path ${RUBY_PATH}
+          mkdir -p ${GEM_HOME}
 
-          bundle config set --local path $GEM_HOME
+          gem install --install-dir ${GEM_HOME} bundler -v '2.3.23'
+          
+          bundle -v
+          bundle config set --local path ${GEM_HOME}
           bundle install
           bundle exec jekyll build
         '''
@@ -31,17 +35,19 @@ pipeline {
     }
     stage('Deploy to stage area') {
       steps {
-        sh """
+        sh '''
           echo "Pushing changes into stage site"
 
           if ! git config remote.asf.url > /dev/null; then
             git remote add asf 
https://gitbox.apache.org/repos/asf/struts-site.git
           fi
 
+          git checkout Gemfile.lock
+
           git fetch asf
           git checkout asf-staging
           git pull asf asf-staging
-
+          
           cp -r _site/* content
           cp -r _site/.htaccess content/.htaccess
 
@@ -51,7 +57,7 @@ pipeline {
 
           git commit -m "Updates stage by Jenkins" --allow-empty
           git push asf asf-staging
-        """
+        '''
       }
     }
     stage('Comment on PR') {
diff --git a/source/core-developers/chain-result.md 
b/source/core-developers/chain-result.md
index b25a4ecc3..e443bb452 100644
--- a/source/core-developers/chain-result.md
+++ b/source/core-developers/chain-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Chain Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Chain Result
diff --git a/source/core-developers/dispatcher-result.md 
b/source/core-developers/dispatcher-result.md
index 9073b00b8..58ee47013 100644
--- a/source/core-developers/dispatcher-result.md
+++ b/source/core-developers/dispatcher-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Dispatcher Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Dispatcher Result
diff --git a/source/core-developers/execute-and-wait-interceptor.md 
b/source/core-developers/execute-and-wait-interceptor.md
index e9ec02abb..9bf87ebef 100644
--- a/source/core-developers/execute-and-wait-interceptor.md
+++ b/source/core-developers/execute-and-wait-interceptor.md
@@ -8,34 +8,34 @@ parent:
 
 # Execute and Wait Interceptor
 
-The ExecuteAndWaitInterceptor is great for running long-lived actions in the 
background while showing the user a nice 
+The ExecuteAndWaitInterceptor is great for running long-lived actions in the 
background while showing the user a nice
 progress meter. This also prevents the HTTP request from timing out when the 
action takes more than 5 or 10 minutes.
 
-Using this interceptor is pretty straight forward. Assuming that you are 
including struts-default.xml, this interceptor 
-is already configured but is not part of any of the default stacks. Because of 
the nature of this interceptor, it must 
+Using this interceptor is pretty straight forward. Assuming that you are 
including struts-default.xml, this interceptor
+is already configured but is not part of any of the default stacks. Because of 
the nature of this interceptor, it must
 be the `last` interceptor in the stack.
 
-This interceptor works on a per-session basis. That means that the same action 
name (`myLongRunningAction`, in 
+This interceptor works on a per-session basis. That means that the same action 
name (`myLongRunningAction`, in
 the above example) cannot be run more than once at a time in a given session. 
On the initial request or any subsequent
-requests (before the action has completed), the `wait` result will be 
returned. 
+requests (before the action has completed), the `wait` result will be returned.
 
->The wait result is responsible for issuing a subsequent request back to the 
action, giving the effect 
+> The wait result is responsible for issuing a subsequent request back to the 
action, giving the effect
 > of a self-updating progress meter.
 
-If no `wait` result is found, Struts will automatically generate a wait result 
on the fly. This result is written 
-in FreeMarker and cannot run unless FreeMarker is installed. If you don't wish 
to deploy with FreeMarker, you must 
+If no `wait` result is found, Struts will automatically generate a wait result 
on the fly. This result is written
+in FreeMarker and cannot run unless FreeMarker is installed. If you don't wish 
to deploy with FreeMarker, you must
 provide your own wait result. This is generally a good thing to do anyway, as 
the default wait page is very plain.
 
-Whenever the wait result is returned, the action that is currently running in 
the background will be placed on top 
-of the stack. This allows you to display progress data, such as a count, in 
the wait page. By making the wait page 
+Whenever the wait result is returned, the action that is currently running in 
the background will be placed on top
+of the stack. This allows you to display progress data, such as a count, in 
the wait page. By making the wait page
 automatically reload the request to the action (which will be short-circuited 
by the interceptor), you can give
 the appearance of an automatic progress meter.
 
-This interceptor also supports using an initial wait delay. An initial delay 
is a time in milliseconds we let the server 
-wait before the wait page is shown to the user. During the wait this 
interceptor will wake every 100 millis to check 
-if the background process is done premature, thus if the job for some reason 
doesn't take to long the wait page is not 
+This interceptor also supports using an initial wait delay. An initial delay 
is a time in milliseconds we let the server
+wait before the wait page is shown to the user. During the wait this 
interceptor will wake every 100 millis to check
+if the background process is done premature, thus if the job for some reason 
doesn't take to long the wait page is not
 shown to the user.
-This is useful for e.g. search actions that have a wide span of execution 
time. Using a delay time of 2000 millis we 
+This is useful for e.g. search actions that have a wide span of execution 
time. Using a delay time of 2000 millis we
 ensure the user is presented fast search results immediately and for the slow 
results a wait page is used.
 
 > Important: Because the action will be running in a separate thread, you 
 > can't use ActionContext because it
@@ -47,76 +47,78 @@ For example, the `search` action would run as a thread 
named `searchBackgroundPr
 
 ## Parameters
 
- - `threadPriority` (optional) - the priority to assign the thread. Default is 
`Thread.NORM_PRIORITY`.
- - `delay` (optional) - an initial delay in millis to wait before the wait 
page is shown (returning `wait` as result code). 
-   Default is no initial delay.
- - `delaySleepInterval` (optional) - only used with delay. Used for waking up 
at certain intervals to check if the background 
-   process is already done. Default is 100 millis.
+- `threadPriority` (optional) - the priority to assign the thread. Default is 
`Thread.NORM_PRIORITY`.
+- `delay` (optional) - an initial delay in millis to wait before the wait page 
is shown (returning `wait` as result
+  code). Default is no initial delay.
+- `delaySleepInterval` (optional) - only used with delay. Used for waking up 
at certain intervals to check if the
+  background process is already done. Default is 100 millis.
 
 ## Extending the Interceptor
 
-If you wish to make special preparations before and/or after the invocation of 
the background thread, you can extend 
-the `BackgroundProcess` class and implement the `beforeInvocation()` and 
`afterInvocation()` methods. This may be useful 
-for  obtaining and releasing resources that the background process will need 
to execute successfully. To use your background 
+If you wish to make special preparations before and/or after the invocation of 
the background thread, you can extend
+the `BackgroundProcess` class and implement the `beforeInvocation()` and 
`afterInvocation()` methods. This may be useful
+for obtaining and releasing resources that the background process will need to 
execute successfully. To use your
+background
 process extension, extend `ExecuteAndWaitInterceptor` and implement the 
`getNewBackgroundProcess()` method.
 
 ## Examples
 
+### Example code 1
+
 ```xml
- <action name="someAction" class="com.examples.SomeAction">
-     <interceptor-ref name="completeStack"/>
-     <interceptor-ref name="execAndWait"/>
-     <result name="wait">longRunningAction-wait.jsp</result>
-     <result name="success">longRunningAction-success.jsp</result>
- </action>
+<action name="someAction" class="com.examples.SomeAction">
+    <interceptor-ref name="completeStack"/>
+    <interceptor-ref name="execAndWait"/>
+    <result name="wait">longRunningAction-wait.jsp</result>
+    <result name="success">longRunningAction-success.jsp</result>
+</action>
+```
 
+```html
  <%@ taglib prefix="s" uri="/struts" %>
- <html>
-   <head>
-     <title>Please wait</title>
-     <meta http-equiv="refresh" content="5;url=<s:url includeParams="all" />"/>
-   </head>
-   <body>
-     Please wait while we process your request.
-     Click <a href="<s:url includeParams="all" />"></a> if this page does not 
reload automatically.
-   </body>
- </html>
- </pre>
-
- <p><u>Example code2:</u></p>
- <p>
- This example will wait 2 second (2000 millis) before the wait page is shown 
to the user. Therefore
- if the long process didn't last long anyway the user isn't shown a wait page.
- </p>
-
- <pre>
- <action name="someAction" class="com.examples.SomeAction">
-     <interceptor-ref name="completeStack"/>
-     <interceptor-ref name="execAndWait">
-         <param name="delay">2000<param>
-     <interceptor-ref>
-     <result name="wait">longRunningAction-wait.jsp</result>
-     <result name="success">longRunningAction-success.jsp</result>
- </action>
- </pre>
-
- <p><u>Example code3:</u></p>
- <p>
- This example will wait 1 second (1000 millis) before the wait page is shown 
to the user.
- And at every 50 millis this interceptor will check if the background process 
is done, if so
- it will return before the 1 second has elapsed, and the user isn't shown a 
wait page.
- </p>
-
- <pre>
- <action name="someAction" class="com.examples.SomeAction">
-     <interceptor-ref name="completeStack"/>
-     <interceptor-ref name="execAndWait">
-         <param name="delay">1000<param>
-         <param name="delaySleepInterval">50<param>
-     <interceptor-ref>
-     <result name="wait">longRunningAction-wait.jsp</result>
-     <result name="success">longRunningAction-success.jsp</result>
- </action>
- </pre>
+<html>
+<head>
+    <title>Please wait</title>
+    <meta http-equiv="refresh" content="5;url=<s:url includeParams='all' />"/>
+</head>
+<body>
+Please wait while we process your request.
+Click <a href="<s:url includeParams=" all" />"></a> if this page does not 
reload automatically.
+</body>
+</html>
+</pre>
+```
+
+### Example code 2:
 
+This example will wait 2 second (2000 millis) before the wait page is shown to 
the user. Therefore if the long process
+didn't last long anyway the user isn't shown a wait page.
+
+```xml
+<action name="someAction" class="com.examples.SomeAction">
+    <interceptor-ref name="completeStack"/>
+    <interceptor-ref name="execAndWait">
+        <param name="delay">2000</param>
+    </interceptor-ref>
+    <result name="wait">longRunningAction-wait.jsp</result>
+    <result name="success">longRunningAction-success.jsp</result>
+</action>
+ ```
+
+### Example code 3:
+
+This example will wait 1 second (1000 millis) before the wait page is shown to 
the user.
+And at every 50 millis this interceptor will check if the background process 
is done, if so
+it will return before the 1 second has elapsed, and the user isn't shown a 
wait page.
+
+```xml
+<action name="someAction" class="com.examples.SomeAction">
+    <interceptor-ref name="completeStack"/>
+    <interceptor-ref name="execAndWait">
+        <param name="delay">1000</param>
+        <param name="delaySleepInterval">50</param>
+    </interceptor-ref>
+    <result name="wait">longRunningAction-wait.jsp</result>
+    <result name="success">longRunningAction-success.jsp</result>
+</action>
 ```
diff --git a/source/core-developers/freemarker-result.md 
b/source/core-developers/freemarker-result.md
index 7d429f768..73e77a313 100644
--- a/source/core-developers/freemarker-result.md
+++ b/source/core-developers/freemarker-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: FreeMarker Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # FreeMarker Result
diff --git a/source/core-developers/httpheader-result.md 
b/source/core-developers/httpheader-result.md
index eaa1234ef..e48fe857b 100644
--- a/source/core-developers/httpheader-result.md
+++ b/source/core-developers/httpheader-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: HttpHeader Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # HttpHeader Result
diff --git a/source/core-developers/plain-result.md 
b/source/core-developers/plain-result.md
index 7a2593ff0..f4a641209 100644
--- a/source/core-developers/plain-result.md
+++ b/source/core-developers/plain-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Plain Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Plain Result
diff --git a/source/core-developers/plaintext-result.md 
b/source/core-developers/plaintext-result.md
index 678cadd1c..6aed2565f 100644
--- a/source/core-developers/plaintext-result.md
+++ b/source/core-developers/plaintext-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: PlainText Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # PlainText Result
diff --git a/source/core-developers/postback-result.md 
b/source/core-developers/postback-result.md
index 2e8061cf0..806112919 100644
--- a/source/core-developers/postback-result.md
+++ b/source/core-developers/postback-result.md
@@ -1,83 +1,39 @@
 ---
 layout: core-developers
 title: Postback Result
+parent:
+    title: Result types
+    url: result-types
 ---
 
 # Postback Result
 
 ## Description
 
-
-
-{% comment %}start snippet 
id=description|javadoc=true|url=org.apache.struts2.result.PostbackResult {% 
endcomment %}
-<p> <p>
-
- A result that renders the current request parameters as a form which
-
- immediately submits a <a 
href="http://en.wikipedia.org/wiki/Postback";>postback</a>
-
- to the specified destination.
-
- </p>
-</p>
-{% comment %}end snippet 
id=description|javadoc=true|url=org.apache.struts2.result.PostbackResult {% 
endcomment %}
+A result that renders the current request parameters as a form which 
immediately submits 
+a [postback](http://en.wikipedia.org/wiki/Postback) to the specified 
destination.
 
 ## Parameters
 
-
-
-{% comment %}start snippet 
id=params|javadoc=true|url=org.apache.struts2.result.PostbackResult {% 
endcomment %}
-<p> <ul>
-
-     <li>location - http location to post the form</li>
-
-     <li>prependServletContext (true|false) -  when location is relative, 
controls if to add Servlet Context, default "true"</li>
-
-     <li>actionName - action name to post the form (resolved as an 
expression)</li>
-
-     <li>namespace - action's namespace to use (resolved as an expression)</li>
-
-     <li>method - actions' method to use (resolved as an expression)</li>
-
-     <li>cache (true|false) - when set to true adds cache control headers, 
default "true"</li>
-
-     <li>parse (true|false) - when set to true actionName, namespace and 
method are parsed, default "true"</li>
-
- </ul>
-</p>
-{% comment %}end snippet 
id=params|javadoc=true|url=org.apache.struts2.result.PostbackResult {% 
endcomment %}
+- location - http location to post the form
+- prependServletContext (true|false) -  when location is relative, controls if 
to add Servlet Context, default "true"
+- actionName - action name to post the form (resolved as an expression)
+- namespace - action's namespace to use (resolved as an expression)
+- method - actions' method to use (resolved as an expression)
+- cache (true|false) - when set to true adds cache control headers, default 
"true"
+- parse (true|false) - when set to true actionName, namespace and method are 
parsed, default "true"
 
 ## Examples
 
-
-
-{% comment %}start snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.result.PostbackResult 
{% endcomment %}
-
-
 ```xml
-
- <action name="registerThirdParty" >
-
-   <result type="postback">https://www.example.com/register</result>
-
- </action>
-
-
-
- <action name="registerThirdParty" >
-
-   <result type="postback">
-
-     <param name="namespace">/secure</param>
-
-     <param name="actionName">register2</param>
-
-   </result>
-
- </action>
-
-
+<action name="registerThirdParty" >
+    <result type="postback">https://www.example.com/register</result>
+</action>
+
+<action name="registerThirdParty" >
+    <result type="postback">
+        <param name="namespace">/secure</param>
+        <param name="actionName">register2</param>
+    </result>
+</action>
 ```
-
-
-{% comment %}end snippet 
id=example|lang=xml|javadoc=true|url=org.apache.struts2.result.PostbackResult 
{% endcomment %}
diff --git a/source/core-developers/redirect-action-result.md 
b/source/core-developers/redirect-action-result.md
index de9e27cbf..11e236000 100644
--- a/source/core-developers/redirect-action-result.md
+++ b/source/core-developers/redirect-action-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Redirect Action Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Redirect Action Result
diff --git a/source/core-developers/redirect-result.md 
b/source/core-developers/redirect-result.md
index 82adde1aa..753f83996 100644
--- a/source/core-developers/redirect-result.md
+++ b/source/core-developers/redirect-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Redirect Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Redirect Result
diff --git a/source/core-developers/result-types.md 
b/source/core-developers/result-types.md
index c85a6d081..3ec5b0da3 100644
--- a/source/core-developers/result-types.md
+++ b/source/core-developers/result-types.md
@@ -4,11 +4,15 @@ title: Result Types
 ---
 
 # Result Types
+{:.no_toc}
 
 Most use cases can be divided into two phases. First, we need to change or 
query the application's state, and then we need 
 to present an updated view of the application. The Action class manages the 
application's state, and the Result Type 
 manages the view.
 
+* Will be replaced with the ToC, excluding a header
+{:toc}
+
 ## Predefined Result Types
 
 The framework provides several implementations of the 
`com.opensymphony.xwork2.Result` interface, ready to use in your 
@@ -23,21 +27,54 @@ own applications.
 |[Stream Result](stream-result)|Used to stream an InputStream back to the 
browser (usually for file downloads)|
 |[Velocity Result](velocity-result)|Used for _Velocity_  integration|
 |[XSL Result](xsl-result)|Used for XML/XSLT integration|
-|[Plain Result](plain-result)|A plain result which all you to write directly 
to a HttpResponse using a simplified API (since Struts 2.6)|
+|[Plain Result](plain-result)|A plain result which all you to write directly 
to a HttpResponse using a simplified API (since Struts 6.x)|
 |[PlainText Result](plaintext-result)|Used to display the raw content of a 
particular file/page (i.e jsp, HTML)|
 |[Tiles Result](../plugins/tiles/)|Used to provide Tiles integration|
-|[Tiles 3 Result](../plugins/tiles-3/)|Used to provide Tiles 3 integration|
 |[Postback Result](postback-result)|Used to postback request parameters as a 
form to the specified destination|
 |[JSON Result](../plugins/json/) |Used to serialize actions into JSON|
-
-## Optional
-
-|[JasperReports Plugin](../plugins/jasperreports/)|Used for [JasperReports 
Tutorial](../getting-started/jasper-reports-tutorial) integration|Optional, 
third-party plugin|
+|[JasperReports Plugin](../plugins/jasperreports/)|Used for [JasperReports 
Tutorial](../getting-started/jasper-reports-tutorial) integration|
 
 Additional Result Types can be created and plugged into an application by 
implementing the `com.opensymphony.xwork2.Result`
 interface. Custom Result Types might include generating an email or JMS 
message, generating images, and so forth.
 
-## Default Parameters
+## How to use results
+
+Once your action has been executed it must either return a result name (as 
`java.lang.String`) or instance 
+of `com.opensymphony.xwork2.Result` and then the result will be executed 
directly.
+
+If a String has been returned, the framework will try to find a matching 
result in the configuration and then it will
+execute the result of a given type, see example:
+
+```xml
+<result name="success" type="dispatcher">/WEB-INF/index.jsp</result>
+```
+
+You can define many results per action distinguishing them by different names:
+
+```xml
+<result name="success" type="dispatcher">/WEB-INF/index.jsp</result>
+<result name="input" type="dispatcher">/WEB-INF/form.jsp</result>
+<result name="error" type="dispatcher">/WEB-INF/error.jsp</result>
+```
+
+## Default result type
+
+In `struts-default.xml` the Dispatcher result type is registered as a default 
result type, which means you don't have to
+specify the `type` attribute if you want to use it:
+
+```xml
+<result name="success">/WEB-INF/index.jsp</result>
+```
+
+## Default result name
+
+If you action method returns `success`, which is a default name of the result, 
you don't have specify the `name` attribute as well:
+
+```xml
+<result>/WEB-INF/index.jsp</result>
+```
+
+## Default parameters
 
 To minimize configuration, Results can be configured with a single value, 
which will be converted into a parameter, 
 and each Result can specify which parameter this value should be set as. For 
example, here is a result defined in XML 
@@ -59,7 +96,7 @@ Since probably 95% of your actions won't need results that 
contain multiple para
 a significant amount of configuration. It also follows that if you have 
specified the default parameter, you don't need 
 to set the same parameter as a specifically-named parameter.
 
-## Registering Result Types
+## Registering result types
 
 All Result Types are plugged in via the [Result 
Configuration](result-configuration).
 
@@ -72,7 +109,7 @@ Check [Define dedicated factory](object-factory) to see how 
to do it.
 Struts 2 provides one such extension for you: 
 
 `ParamNameAwareResult` interface when used with `StrutsResultBuilder` can 
limit parameters assigned to the result. 
-So you can simple extend existing result with such a functionality as below:
+So you can simply extend existing result with such a functionality as below:
 
 ```java
 public class MyResult extends ServletDispatcherResult implements 
ParamNameAwareResult {
diff --git a/source/core-developers/stream-result.md 
b/source/core-developers/stream-result.md
index 303137a0a..f6c67687a 100644
--- a/source/core-developers/stream-result.md
+++ b/source/core-developers/stream-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: Stream Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # Stream Result
diff --git a/source/core-developers/velocity-result.md 
b/source/core-developers/velocity-result.md
index 562c8811b..57e00d076 100644
--- a/source/core-developers/velocity-result.md
+++ b/source/core-developers/velocity-result.md
@@ -1,6 +1,9 @@
 ---
 layout: core-developers
 title: Velocity Result
+parent:
+    title: Result types
+    url: result-types
 ---
 
 # Velocity Result
diff --git a/source/core-developers/xsl-result.md 
b/source/core-developers/xsl-result.md
index 428714de2..7d2f38c5f 100644
--- a/source/core-developers/xsl-result.md
+++ b/source/core-developers/xsl-result.md
@@ -2,8 +2,8 @@
 layout: default
 title: XSL Result
 parent:
-    title: Core Developers Guide
-    url: index.html
+    title: Result types
+    url: result-types
 ---
 
 # XSL Result
diff --git a/source/plugins/index.md b/source/plugins/index.md
index 13b2176af..a11e72f29 100644
--- a/source/plugins/index.md
+++ b/source/plugins/index.md
@@ -5,44 +5,45 @@ title: Plugins
 
 # Plugin Developers Guide
 
-Apache Struts 2 provides a simple [plugin architecture](plugins-architecture) 
so that developers can extend the framework just by
-adding a JAR to the application's classpath. Since plugins are contained in a 
JAR, they are easy to share with others.
-Several plugins are bundled with the framework, and others are available from 
third-party sources.
+Apache Struts 2 provides a simple [plugin architecture](plugins-architecture) 
so that developers can extend the
+framework just by adding a JAR to the application's classpath. Since plugins 
are contained in a JAR, they are easy
+to share with others. Several plugins are bundled with the framework, and 
others are available from third-party sources.
 
 - [Plugins Architecture](plugins-architecture)
 - [Extending an Application with Custom 
Plugins](extending-an-application-with-custom-plugins)
 
 ## Bundled Plugins
 
-| Name                                      | Versions             | Note      
                                                         |
-|-------------------------------------------|----------------------|--------------------------------------------------------------------|
-| [Bean Validation Plugin](bean-validation) | 2.5+                 |
-| [CDI (JSR 299) Plugin](cdi)               | 2.3.1+               |
-| [Codebehind Plugin](codebehind)           | < 2.5                | removed 
since 2.5, use [Convention Plugin](convention)             |
+| Name                                      | Versions               | Note    
                                                              |
+|-------------------------------------------|------------------------|-----------------------------------------------------------------------|
+| [Bean Validation Plugin](bean-validation) | 2.5+                   |
+| [CDI (JSR 299) Plugin](cdi)               | 2.3.1+                 |
+| [Codebehind Plugin](codebehind)           | < 2.5                  | removed 
since 2.5, use [Convention Plugin](convention)                |
 | [Config Browser Plugin](config-browser)   |||
-| [Convention Plugin](convention)           | 2.1.3+               ||
+| [Convention Plugin](convention)           | 2.1.3+                 ||
 | [DWR Plugin](dwr)                         |||
-| [Embedded JSP Plugin](embedded-jsp)       | 2.1.7+               | 
deprecated since 2.6                                               |
+| [Embedded JSP Plugin](embedded-jsp)       | 2.1.7+                 | 
deprecated since 6.0.0                                                |
 | [JasperReports Plugin](jasperreports)     |||
-| [Java 8 Support Plugin](java-8-support)   | 2.3.21 - 2.5.2       ||
-| [Javatemplates Plugin](javatemplates)     | 2.1.3+               ||
+| [Java 8 Support Plugin](java-8-support)   | 2.3.21 - 2.5.2         ||
+| [Javatemplates Plugin](javatemplates)     | 2.1.3+                 ||
 | [JFreeChart Plugin](jfreechart)           |||
-| [JSF Plugin](jsf)                         | < 2.5                | removed 
since 2.5                                                  |
-| [JSON Plugin](json)                       | 2.1.7+               ||
+| [JSF Plugin](jsf)                         | < 2.5                  | removed 
since 2.5                                                     |
+| [JSON Plugin](json)                       | 2.1.7+                 ||
 | [JUnit Plugin](junit)                     |||
-| [OVal Plugin](oval)                       | 2.1.7+               | 
deprecated since 2.6, use [Bean Validation Plugin](bean-validation) |
-| [OSGi Plugin](osgi)                       | 2.1.7+               | 
deprecated since 2.6                                               |
-| [Plexus Plugin](plexus)                   || deprecated since 2.6 |
-| [Portlet Plugin](portlet)                 || deprecated since 2.6 |
-| [Portlet Tiles Plugin](portlet-tiles)     | 2.3.5+               | 
deprecated since 2.6                                               |
-| [REST Plugin](rest)                       | 2.1.1+               ||
-| [SiteGraph Plugin](sitegraph)             | < 2.5                | removed 
since 2.5                                                  |
-| [SiteMesh Plugin](sitemesh)               || deprecated since 2.6 |
+| [OVal Plugin](oval)                       | 2.1.7+                 | 
deprecated since 6.0.0, use [Bean Validation Plugin](bean-validation) |
+| [OSGi Plugin](osgi)                       | 2.1.7+                 | 
deprecated since 6.0.0                                                |
+| [Plexus Plugin](plexus)                   || deprecated since 6.0.0 |
+| [Portlet Plugin](portlet)                 || deprecated since 6.0.0 |
+| [Portlet Tiles Plugin](portlet-tiles)     | 2.3.5+                 | 
deprecated since 6.0.0                                                |
+| [REST Plugin](rest)                       | 2.1.1+                 ||
+| [SiteGraph Plugin](sitegraph)             | < 2.5                  | removed 
since 2.5                                                     |
+| [SiteMesh Plugin](sitemesh)               || deprecated since 6.0.0 |
 | [Spring Plugin](spring)                   |||
-| [Struts 1 Plugin](struts-1)               | < 2.5                | removed 
since 2.5                                                  |
+| [Struts 1 Plugin](struts-1)               | < 2.5                  | removed 
since 2.5                                                     |
 | [TestNG Plugin](testng)                   |||
 | [Tiles Plugin](tiles)                     |||
-| [Tiles 3 Plugin](tiles-3)                 | < 2.5                | removed 
since 2.5                                                  |
-| [Velocity Plugin](velocity)               | < 6.0.0              |           
                                                         |
+| [Tiles 3 Plugin](tiles-3)                 | < 2.5                  | removed 
since 2.5                                                     |
+| [Velocity Plugin](velocity)               | |                                
                                       |
 
-> For a complete list of bundled and third-party plugins, visit the [Plugin 
Registry](http://cwiki.apache.org/S2PLUGINS/Home).
+> For a complete list of bundled and third-party plugins, visit
+> the [Plugin Registry](http://cwiki.apache.org/S2PLUGINS/Home).


Reply via email to