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

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


The following commit(s) were added to refs/heads/asf-staging by this push:
     new cf88f68  Updates stage by Jenkins
cf88f68 is described below

commit cf88f6847ea6bae0ca642f55123779a0f7091447
Author: jenkins <bui...@apache.org>
AuthorDate: Sat Mar 28 09:10:32 2020 +0000

    Updates stage by Jenkins
---
 ...ending-an-application-with-custom-plugins.html} | 207 ++++++++++-----------
 content/plugins/index.html                         |   6 +-
 .../access-to-valuestack-from-jsps.html            |   2 -
 content/tag-developers/ajax-a-template.html        |   2 -
 .../ajax-and-javascript-recipes.html               |   2 +-
 content/tag-developers/ajax-div-template.html      |   2 -
 content/tag-developers/ajax-event-system.html      |   2 -
 content/tag-developers/ajax-head-template.html     |   2 -
 content/tag-developers/ajax-tags.html              |   4 +-
 content/tag-developers/alt-syntax.html             |   4 +-
 .../cewolf-charts-using-velocity-templates.html    |   2 -
 content/tag-developers/dojo-a-tag.html             |   2 -
 content/tag-developers/dojo-autocompleter-tag.html |   2 -
 content/tag-developers/dojo-bind-tag.html          |   2 -
 .../tag-developers/dojo-datetimepicker-tag.html    |   2 -
 content/tag-developers/dojo-div-tag.html           |   2 -
 content/tag-developers/dojo-head-tag.html          |   2 -
 content/tag-developers/dojo-submit-tag.html        |   2 -
 content/tag-developers/dojo-tabbedpanel-tag.html   |   2 -
 content/tag-developers/dojo-textarea-tag.html      |   2 -
 content/tag-developers/dojo-tree-tag.html          |   2 -
 content/tag-developers/dojo-treenode-tag.html      |   2 -
 content/tag-developers/extending-themes.html       |   2 -
 content/tag-developers/form-tags.html              |   2 -
 content/tag-developers/freemarker-tags.html        |   4 +-
 content/tag-developers/freemarker.html             |   4 +-
 content/tag-developers/generic-tags.html           |   4 +-
 content/tag-developers/index.html                  |  36 ++--
 content/tag-developers/jsp-tags.html               |   4 +-
 content/tag-developers/jsp.html                    |   4 +-
 content/tag-developers/ognl-basics.html            |   4 +-
 .../ognl-expression-compilation.html               |   4 +-
 content/tag-developers/ognl.html                   |   4 +-
 .../selecting-template-directory.html              |   2 -
 content/tag-developers/selecting-themes.html       |   2 -
 content/tag-developers/struts-tags.html            |   4 +-
 content/tag-developers/tag-reference.html          |   4 +-
 content/tag-developers/tag-syntax.html             |   4 +-
 content/tag-developers/template-loading.html       |   2 -
 content/tag-developers/themes-and-templates.html   |   4 +-
 content/tag-developers/ui-tags.html                |   4 +-
 content/tag-developers/velocity-tags.html          |   6 +-
 content/tag-developers/velocity.html               |  71 +++----
 43 files changed, 172 insertions(+), 260 deletions(-)

diff --git a/content/tag-developers/access-to-valuestack-from-jsps.html 
b/content/plugins/extending-an-application-with-custom-plugins.html
similarity index 50%
copy from content/tag-developers/access-to-valuestack-from-jsps.html
copy to content/plugins/extending-an-application-with-custom-plugins.html
index 4e5b63a..bb572bc 100644
--- a/content/tag-developers/access-to-valuestack-from-jsps.html
+++ b/content/plugins/extending-an-application-with-custom-plugins.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Access to ValueStack from JSPs</title>
+  <title>Plugins</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">
@@ -125,146 +125,129 @@
 
 <article class="container">
   <section class="col-md-12">
-    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/access-to-valuestack-from-jsps.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
+    <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/plugins/extending-an-application-with-custom-plugins.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index.html" title="back to Plugins"><< back to Plugins</a>
     
-    <h1 id="access-to-valuestack-from-jsps">Access to ValueStack from JSPs</h1>
+    <h1 class="no_toc" 
id="extending-an-application-with-custom-plugins">Extending an Application with 
Custom Plugins</h1>
 
-<p>To access the ValueStack from third-party JSP taglibs, expose property 
values to JSP using the <code class="highlighter-rouge">&lt;s:set/&gt;</code> 
tag.</p>
+<ul id="markdown-toc">
+  <li><a href="#the-interface" id="markdown-toc-the-interface">The 
Interface</a></li>
+  <li><a href="#the-plugin" id="markdown-toc-the-plugin">The Plugin</a></li>
+  <li><a href="#the-action" id="markdown-toc-the-action">The Action</a></li>
+  <li><a href="#the-jsp" id="markdown-toc-the-jsp">The JSP</a></li>
+</ul>
 
-<p><strong>Set a request scoped parameter ‘a’ to list of integers</strong></p>
+<p>In this tutorial, we will show how easily our application can be made 
extensible using the Struts 2 plugin mechanism. 
+To keep the demonstration simple, our plugin will expose a JavaBean that 
writes a message. Plugins may include any 
+combination of JavaBeans, Actions, Interceptors, Results or other resources 
we’d like available to an application.</p>
 
-<pre><code class="language-jsp">&lt;s:set name="'a'" value="{ 1, 2, 3, 4 }" 
scope="request"/&gt;
-</code></pre>
+<h2 id="the-interface">The Interface</h2>
+
+<p>At runtime, plugins are retrieved and referenced via an Interface. So, 
first, we should define an interface that our 
+plugin will implement. This interface must be available to both our web 
application and the plugin. To reduce coupling 
+between the web application and the plugins, keep the interface in a separate 
JAR.</p>
 
-<p>After setting parameters, third-party JSP taglibs can access variables or 
use JSP 2.0 EL (Expression Language). 
-This is convenient as short hand EL expression syntax <code 
class="highlighter-rouge">${expression}</code> can be used in a text or inside 
of tag attributes:</p>
+<p><strong>IMyPlugin.java</strong></p>
 
-<div class="highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>a[0] = ${a[0]}
+<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kn">package</span> <span 
class="n">example</span><span class="o">;</span>
 
-&lt;sample:tag value="${a[1]}"/&gt;
+<span class="kd">public</span> <span class="kd">interface</span> <span 
class="nc">IMyPlugIn</span> <span class="o">{</span>
+   <span class="n">String</span> <span class="nf">saySomething</span><span 
class="o">();</span>
+<span class="o">}</span>
 </code></pre></div></div>
 
-<p>In practice, several variables must be exposed to make effective use of 
third party taglibs like <a 
href="http://displaytag.sourceforge.net/11/";>DisplayTag</a>. 
-Unfortunately, this approach leads to a lot of <code 
class="highlighter-rouge">&lt;s:set/&gt;</code> tags.</p>
+<h2 id="the-plugin">The Plugin</h2>
+
+<p>Now that we have an interface to implement we’ll create the plugin. At load 
time, the framework looks for JARs 
+containing a <code class="highlighter-rouge">struts-plugin.xml</code> file at 
the root of the archive. To create a plugin, all we need to do is build 
+a JAR and put the expected <code 
class="highlighter-rouge">struts-plugin.xml</code> at the root.</p>
+
+<p>To get started, let’s create a class that implements our IMyPlugin 
interface.</p>
 
-<blockquote>
-  <p>Unfortunately, it isn’t that simple. we tinkered with <code 
class="highlighter-rouge">JSPFactory.setDefault()</code> to wrap around <code 
class="highlighter-rouge">getPageContext()</code> 
-and create <code class="highlighter-rouge">ExpressionEvaluator</code> that 
would use OGNL. This strategy works in practice, but code generated by Jasper2 
-doesn’t call <code 
class="highlighter-rouge">JSPFactory.getPageContext().getExpressionEvaluator()</code>
 but goes directly to static method that is 
-hardwired to Jakarta Commons-EL implementation.</p>
-</blockquote>
+<p><strong>MyPlugin.java</strong></p>
 
-<blockquote>
-  <table>
-    <tbody>
-      <tr>
-        <td>Even if this approach did work, it wouldn’t be <em>clean</em> as 
<code class="highlighter-rouge">JSPFactory.setDefault()</code> should only be 
called by JSP implementation.</td>
-      </tr>
-    </tbody>
-  </table>
-</blockquote>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kn">package</span> <span 
class="n">example</span><span class="o">.</span><span 
class="na">impl</span><span class="o">;</span>
 
-<p>There is a simple, if not elegant, solution available in JSP 2.0 EL, for 
exposing ValueStack to OGNL. It is possible 
-to create custom functions that can be called from EL expressions. Functions 
have to be ‘public static’ and specified 
-in a TLD file.</p>
+<span class="kn">import</span> <span class="nn">example.IMyPlugin</span><span 
class="o">;</span> 
 
-<p>To use a function, import the TLD in a JSP file where you’ve want to use a 
function. For example, you could access 
-Action properties by evaluating OGNL expression by a function ‘vs’ (for 
valuestack) in EL.</p>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">MyPlugin</span> <span class="kd">implements</span> <span 
class="n">IMyPlugin</span> <span class="o">{</span>
+   <span class="kd">public</span> <span class="n">String</span> <span 
class="nf">saySomething</span><span class="o">()</span> <span class="o">{</span>
+       <span class="k">return</span> <span class="s">"We don't need no 
education"</span><span class="o">;</span>
+   <span class="o">}</span>
+<span class="o">}</span>
+</code></pre></div></div>
 
-<pre><code class="language-jsp">&lt;%@ taglib uri="/WEB-INF/tld/wwel.tld" 
prefix="x" %&gt;
+<p>Internally, the framework utilizes a number of JavaBeans. We can use the 
<code class="highlighter-rouge">bean</code> element to add our own JavaBeans 
+to the set managed by the framework.</p>
 
-a[0] = ${x:vs('a[0]')}
-a[0] * 4 = ${x:vs('a[0] * 4')}
+<p><strong>struts-default.xml</strong></p>
 
-Current action name: ${x:name()}
-Top of ValueStack: ${x:top()}
-</code></pre>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="cp">&lt;?xml version="1.0" 
encoding="UTF-8" ?&gt;</span>
 
-<p>To use this code you’ve got to add <code 
class="highlighter-rouge">wwel.tld</code> and <code 
class="highlighter-rouge">Functions.java</code> to your webapp project.</p>
-
-<blockquote>
-  <p>If someone were interested, it would be helpful for a developer (like 
you!) to define a set of functions that we could 
-include in a future release of the framework.</p>
-</blockquote>
-
-<p><strong>wwel.tld</strong></p>
-
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="cp">&lt;?xml version="1.0"?&gt;</span>
-<span class="nt">&lt;taglib</span> <span class="na">xmlns=</span><span 
class="s">"http://java.sun.com/xml/ns/j2ee";</span>
-       <span class="na">xmlns:xsi=</span><span 
class="s">"http://www.w3.org/2001/XMLSchema-instance";</span>
-       <span class="na">xsi:schemaLocation=</span><span 
class="s">"http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd";</span>
-       <span class="na">version=</span><span class="s">"2.0"</span><span 
class="nt">&gt;</span>
-
-<span class="nt">&lt;description&gt;</span>
-This taglib enables access to the ValueStack
-from JSP 2.0 Expression Language
-<span class="nt">&lt;/description&gt;</span>
-
-<span class="nt">&lt;tlib-version&gt;</span>1.0<span 
class="nt">&lt;/tlib-version&gt;</span>
-
-<span class="nt">&lt;short-name&gt;</span>wwel<span 
class="nt">&lt;/short-name&gt;</span>
-
-<span class="nt">&lt;function&gt;</span>
-       <span class="nt">&lt;name&gt;</span>vs<span 
class="nt">&lt;/name&gt;</span>
-       <span 
class="nt">&lt;function-class&gt;</span>com.nmote.wwel.Functions<span 
class="nt">&lt;/function-class&gt;</span>
-       <span class="nt">&lt;function-signature&gt;</span>
-               java.lang.Object findOnValueStack(java.lang.String)
-       <span class="nt">&lt;/function-signature&gt;</span>
-<span class="nt">&lt;/function&gt;</span>
-
-<span class="nt">&lt;function&gt;</span>
-       <span class="nt">&lt;name&gt;</span>name<span 
class="nt">&lt;/name&gt;</span>
-       <span 
class="nt">&lt;function-class&gt;</span>com.nmote.wwel.Functions<span 
class="nt">&lt;/function-class&gt;</span>
-       <span class="nt">&lt;function-signature&gt;</span>
-               java.lang.Object getActionName()
-       <span class="nt">&lt;/function-signature&gt;</span>
-<span class="nt">&lt;/function&gt;</span>
-
-<span class="nt">&lt;function&gt;</span>
-       <span class="nt">&lt;name&gt;</span>top<span 
class="nt">&lt;/name&gt;</span>
-       <span 
class="nt">&lt;function-class&gt;</span>com.nmote.wwel.Functions<span 
class="nt">&lt;/function-class&gt;</span>
-       <span class="nt">&lt;function-signature&gt;</span>
-               java.lang.Object getTopOfValueStack()
-       <span class="nt">&lt;/function-signature&gt;</span>
-<span class="nt">&lt;/function&gt;</span>
-
-<span class="nt">&lt;/taglib&gt;</span>
+<span class="cp">&lt;!DOCTYPE struts PUBLIC
+    "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+    "http://struts.apache.org/dtds/struts-2.5.dtd"&gt;</span>
+
+<span class="nt">&lt;struts&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span 
class="s">"example.IMyInterface"</span> <span class="na">class=</span><span 
class="s">"example.impl.MyPlugin"</span> <span class="na">name=</span><span 
class="s">"myPlugin"</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/struts&gt;</span>
 </code></pre></div></div>
 
-<p><strong>Functions.java</strong></p>
+<p>Finally, to install the plugin, drop the JAR file under WEB-INF/lib.</p>
+
+<h2 id="the-action">The Action</h2>
 
-<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kn">package</span> <span 
class="n">com</span><span class="o">.</span><span class="na">nmote</span><span 
class="o">.</span><span class="na">wwel</span><span class="o">;</span>
+<p>The JavaBeans configured by <code class="highlighter-rouge">bean</code> 
elements can be retrieved via a Container provided by XWork 2. We obtain 
+a reference to the Container by using the <code 
class="highlighter-rouge">@Inject</code> notation. (This notation is part of 
the Guice framework that 
+XWork and Struts use under the covers.) The framework predefines a Container 
object, and the <code class="highlighter-rouge">@Inject</code> annotation tells 
+the framework to set its Container object to the Action property.</p>
 
-<span class="kn">import</span> <span 
class="nn">com.opensymphony.xwork.ActionContext</span><span class="o">;</span>
+<p>We might want to supply a number of JavaBeans to the application this way. 
In the Action, we will obtain a reference 
+to the entire set of JavaBeans that might have been plugged in. Then, we can 
scroll through the set, displaying each 
+JavaBean’s message.</p>
 
-<span class="cm">/**
- * Utility functions for accessing value stack and action context
- * from JSP 2.0 EL taglibs.
- */</span>
-<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">Functions</span> <span class="o">{</span>
+<p><strong>MyAction.java</strong></p>
 
-       <span class="kd">public</span> <span class="kd">static</span> <span 
class="n">Object</span> <span class="nf">findOnValueStack</span><span 
class="o">(</span><span class="n">String</span> <span 
class="n">expr</span><span class="o">)</span> <span class="o">{</span>
-               <span class="n">ActionContext</span> <span class="n">a</span> 
<span class="o">=</span> <span class="n">ActionContext</span><span 
class="o">.</span><span class="na">getContext</span><span class="o">();</span>
-               <span class="n">Object</span> <span class="n">value</span> 
<span class="o">=</span> <span class="n">a</span><span class="o">.</span><span 
class="na">getValueStack</span><span class="o">().</span><span 
class="na">findValue</span><span class="o">(</span><span 
class="n">expr</span><span class="o">);</span>
-               <span class="k">return</span> <span class="n">value</span><span 
class="o">;</span>
-       <span class="o">}</span>
+<div class="language-java highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="kn">package</span> <span 
class="n">example</span><span class="o">.</span><span 
class="na">actions</span><span class="o">;</span>
 
-       <span class="kd">public</span> <span class="kd">static</span> <span 
class="n">Object</span> <span class="nf">getTopOfValueStack</span><span 
class="o">()</span> <span class="o">{</span>
-               <span class="n">ActionContext</span> <span class="n">a</span> 
<span class="o">=</span> <span class="n">ActionContext</span><span 
class="o">.</span><span class="na">getContext</span><span class="o">();</span>
-               <span class="n">Object</span> <span class="n">value</span> 
<span class="o">=</span> <span class="n">a</span><span class="o">.</span><span 
class="na">getValueStack</span><span class="o">().</span><span 
class="na">peek</span><span class="o">();</span>
-               <span class="k">return</span> <span class="n">value</span><span 
class="o">;</span>
-       <span class="o">}</span>
+<span class="kn">import</span> <span class="nn">example.IMyPlugin</span><span 
class="o">;</span>
 
-       <span class="kd">public</span> <span class="kd">static</span> <span 
class="n">Object</span> <span class="nf">getActionName</span><span 
class="o">()</span> <span class="o">{</span>
-               <span class="n">ActionContext</span> <span class="n">a</span> 
<span class="o">=</span> <span class="n">ActionContext</span><span 
class="o">.</span><span class="na">getContext</span><span class="o">();</span>
-               <span class="n">Object</span> <span class="n">value</span> 
<span class="o">=</span> <span class="n">a</span><span class="o">.</span><span 
class="na">getName</span><span class="o">();</span>
-               <span class="k">return</span> <span class="n">value</span><span 
class="o">;</span>
-       <span class="o">}</span>
+<span class="kd">public</span> <span class="kd">class</span> <span 
class="nc">MyAction</span> <span class="kd">extends</span> <span 
class="n">ActionSupport</span> <span class="o">{</span>
+    <span class="n">Set</span><span class="o">&lt;</span><span 
class="n">IMyPlugin</span><span class="o">&gt;</span> <span 
class="n">plugins</span><span class="o">;</span>
+
+    <span class="nd">@Inject</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span 
class="nf">setContainer</span><span class="o">(</span><span 
class="n">Container</span> <span class="n">container</span><span 
class="o">)</span> <span class="o">{</span>
+        <span class="n">Set</span><span class="o">&lt;</span><span 
class="n">String</span><span class="o">&gt;</span> <span class="n">names</span> 
<span class="o">=</span> <span class="n">container</span><span 
class="o">.</span><span class="na">getInstanceNames</span><span 
class="o">(</span><span class="n">IMyPlugin</span><span class="o">.</span><span 
class="na">class</span><span class="o">);</span>
+        <span class="n">plugins</span> <span class="o">=</span> <span 
class="k">new</span> <span class="n">HashSet</span><span 
class="o">&lt;</span><span class="n">IMyPlugin</span><span 
class="o">&gt;();</span>
+        <span class="k">for</span> <span class="o">(</span><span 
class="n">String</span> <span class="n">name</span> <span class="o">:</span> 
<span class="n">names</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">plugins</span><span class="o">.</span><span 
class="na">add</span><span class="o">(</span><span 
class="n">container</span><span class="o">.</span><span 
class="na">getInstance</span><span class="o">(</span><span 
class="n">IMyPlugin</span><span class="o">.</span><span 
class="na">class</span><span class="o">,</span> <span 
class="n">name</span><span class="o">));</span>
+        <span class="o">}</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">Set</span><span 
class="o">&lt;</span><span class="n">IMyPlugin</span><span 
class="o">&gt;</span> <span class="nf">getPlugins</span><span 
class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span 
class="o">.</span><span class="na">plugins</span><span class="o">;</span>
+    <span class="o">}</span>
 <span class="o">}</span>
 </code></pre></div></div>
 
+<p>As seen by the Action class code, it’s important to define a unique 
interface for any beans that we plugin, so that 
+we can identify our beans later.</p>
+
+<p>In the same way that we plugged in this JavaBean, we could also plugin and 
configure Action classes, Interceptors, 
+Results, or any other JAR-able resource that an application might utilize.</p>
+
+<h2 id="the-jsp">The JSP</h2>
+
+<p>Let’s do something with those plugins:</p>
+
+<p><strong>Page.jsp</strong></p>
+
+<pre><code class="language-jsp">&lt;s:iterator id="plugin" value="plugins"&gt;
+  &lt;s:property value="#plugin.saySomething()"/&gt;
+&lt;/s:iterator&gt;
+</code></pre>
+
   </section>
 </article>
 
diff --git a/content/plugins/index.html b/content/plugins/index.html
index c3730ae..658c0e7 100644
--- a/content/plugins/index.html
+++ b/content/plugins/index.html
@@ -129,13 +129,13 @@
     
     <h1 id="plugin-developers-guide">Plugin Developers Guide</h1>
 
-<p>Apache Struts 2 provides a simple <a href="plugins.html">plugin 
architecture</a> so that developers can extend the framework just 
+<p>Apache Struts 2 provides a simple <a href="plugins">plugin architecture</a> 
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.</p>
 
 <ul>
-  <li><a href="plugins.html">Plugins</a></li>
-  <li><a href="extending-an-application-with-custom-plugins.html">Extending an 
Application with Custom Plugins</a></li>
+  <li><a href="plugins">Plugins</a></li>
+  <li><a href="extending-an-application-with-custom-plugins">Extending an 
Application with Custom Plugins</a></li>
 </ul>
 
 <h2 id="bundled-plugins">Bundled Plugins</h2>
diff --git a/content/tag-developers/access-to-valuestack-from-jsps.html 
b/content/tag-developers/access-to-valuestack-from-jsps.html
index 4e5b63a..a8f8383 100644
--- a/content/tag-developers/access-to-valuestack-from-jsps.html
+++ b/content/tag-developers/access-to-valuestack-from-jsps.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/access-to-valuestack-from-jsps.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="access-to-valuestack-from-jsps">Access to ValueStack from JSPs</h1>
 
 <p>To access the ValueStack from third-party JSP taglibs, expose property 
values to JSP using the <code class="highlighter-rouge">&lt;s:set/&gt;</code> 
tag.</p>
diff --git a/content/tag-developers/ajax-a-template.html 
b/content/tag-developers/ajax-a-template.html
index f14b5ae..a9cc2dc 100644
--- a/content/tag-developers/ajax-a-template.html
+++ b/content/tag-developers/ajax-a-template.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-a-template.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="ajax-a-template">ajax a template</h1>
 
 <blockquote>
diff --git a/content/tag-developers/ajax-and-javascript-recipes.html 
b/content/tag-developers/ajax-and-javascript-recipes.html
index 8d2b3ec..f162ebe 100644
--- a/content/tag-developers/ajax-and-javascript-recipes.html
+++ b/content/tag-developers/ajax-and-javascript-recipes.html
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-and-javascript-recipes.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="ajax-and-javascript-recipes">Ajax and JavaScript 
Recipes</h1>
 
diff --git a/content/tag-developers/ajax-div-template.html 
b/content/tag-developers/ajax-div-template.html
index 67390dd..be2bcb9 100644
--- a/content/tag-developers/ajax-div-template.html
+++ b/content/tag-developers/ajax-div-template.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-div-template.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="ajax-div-template">ajax div template</h1>
 
 <blockquote>
diff --git a/content/tag-developers/ajax-event-system.html 
b/content/tag-developers/ajax-event-system.html
index 8c2ce28..2f43b2b 100644
--- a/content/tag-developers/ajax-event-system.html
+++ b/content/tag-developers/ajax-event-system.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-event-system.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="ajax-event-system">ajax event system</h1>
 
 <blockquote>
diff --git a/content/tag-developers/ajax-head-template.html 
b/content/tag-developers/ajax-head-template.html
index 4c03cca..6c716bf 100644
--- a/content/tag-developers/ajax-head-template.html
+++ b/content/tag-developers/ajax-head-template.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-head-template.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="ajax-head-template">ajax head template</h1>
 
 <blockquote>
diff --git a/content/tag-developers/ajax-tags.html 
b/content/tag-developers/ajax-tags.html
index dd6f511..8769991 100644
--- a/content/tag-developers/ajax-tags.html
+++ b/content/tag-developers/ajax-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Ajax Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ajax-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="ajax-tags">Ajax Tags</h1>
 
diff --git a/content/tag-developers/alt-syntax.html 
b/content/tag-developers/alt-syntax.html
index 2725b56..7e22c1a 100644
--- a/content/tag-developers/alt-syntax.html
+++ b/content/tag-developers/alt-syntax.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Alt Syntax</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/alt-syntax.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="alt-syntax">Alt Syntax</h1>
 
diff --git a/content/tag-developers/cewolf-charts-using-velocity-templates.html 
b/content/tag-developers/cewolf-charts-using-velocity-templates.html
index 21adaba..b5398d1 100644
--- a/content/tag-developers/cewolf-charts-using-velocity-templates.html
+++ b/content/tag-developers/cewolf-charts-using-velocity-templates.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/cewolf-charts-using-velocity-templates.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="cewolf-charts-using-velocity-templates">CeWolf charts using 
Velocity templates</h1>
 
 <h2 id="setup-cewolf">Setup CeWolf</h2>
diff --git a/content/tag-developers/dojo-a-tag.html 
b/content/tag-developers/dojo-a-tag.html
index a1a822e..0e37d6e 100644
--- a/content/tag-developers/dojo-a-tag.html
+++ b/content/tag-developers/dojo-a-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-a-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="dojo-anchor">dojo anchor</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-autocompleter-tag.html 
b/content/tag-developers/dojo-autocompleter-tag.html
index 2aaab1e..4ebc865 100644
--- a/content/tag-developers/dojo-autocompleter-tag.html
+++ b/content/tag-developers/dojo-autocompleter-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-autocompleter-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="autocompleter">autocompleter</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-bind-tag.html 
b/content/tag-developers/dojo-bind-tag.html
index 8c24b4b..941e9a6 100644
--- a/content/tag-developers/dojo-bind-tag.html
+++ b/content/tag-developers/dojo-bind-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-bind-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="bind">bind</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-datetimepicker-tag.html 
b/content/tag-developers/dojo-datetimepicker-tag.html
index a359bcb..d419299 100644
--- a/content/tag-developers/dojo-datetimepicker-tag.html
+++ b/content/tag-developers/dojo-datetimepicker-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-datetimepicker-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="datetimepicker">datetimepicker</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-div-tag.html 
b/content/tag-developers/dojo-div-tag.html
index 6a81d48..f70c4ba 100644
--- a/content/tag-developers/dojo-div-tag.html
+++ b/content/tag-developers/dojo-div-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-div-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="dojo-div">dojo div</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-head-tag.html 
b/content/tag-developers/dojo-head-tag.html
index 30b26fe..fb9227b 100644
--- a/content/tag-developers/dojo-head-tag.html
+++ b/content/tag-developers/dojo-head-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-head-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="dojo-head">dojo head</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-submit-tag.html 
b/content/tag-developers/dojo-submit-tag.html
index d00dcb8..43f8aed 100644
--- a/content/tag-developers/dojo-submit-tag.html
+++ b/content/tag-developers/dojo-submit-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-submit-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="dojo-submit">dojo submit</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-tabbedpanel-tag.html 
b/content/tag-developers/dojo-tabbedpanel-tag.html
index c9e4fd0..f5662c6 100644
--- a/content/tag-developers/dojo-tabbedpanel-tag.html
+++ b/content/tag-developers/dojo-tabbedpanel-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-tabbedpanel-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="tabbedpanel">tabbedpanel</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-textarea-tag.html 
b/content/tag-developers/dojo-textarea-tag.html
index e4a3e02..a87d94c 100644
--- a/content/tag-developers/dojo-textarea-tag.html
+++ b/content/tag-developers/dojo-textarea-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-textarea-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="dojo-textarea">dojo textarea</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-tree-tag.html 
b/content/tag-developers/dojo-tree-tag.html
index f580ee0..df64af6 100644
--- a/content/tag-developers/dojo-tree-tag.html
+++ b/content/tag-developers/dojo-tree-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-tree-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="tree">tree</h1>
 
 <blockquote>
diff --git a/content/tag-developers/dojo-treenode-tag.html 
b/content/tag-developers/dojo-treenode-tag.html
index c44f3ac..69baca1 100644
--- a/content/tag-developers/dojo-treenode-tag.html
+++ b/content/tag-developers/dojo-treenode-tag.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/dojo-treenode-tag.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="treenode">treenode</h1>
 
 <blockquote>
diff --git a/content/tag-developers/extending-themes.html 
b/content/tag-developers/extending-themes.html
index c194024..465b8cd 100644
--- a/content/tag-developers/extending-themes.html
+++ b/content/tag-developers/extending-themes.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/extending-themes.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 class="no_toc" id="extending-themes">Extending Themes</h1>
 
 <ul id="markdown-toc">
diff --git a/content/tag-developers/form-tags.html 
b/content/tag-developers/form-tags.html
index d1f5845..97fd760 100644
--- a/content/tag-developers/form-tags.html
+++ b/content/tag-developers/form-tags.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/form-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 class="no_toc" id="form-tags">Form Tags</h1>
 
 <ul id="markdown-toc">
diff --git a/content/tag-developers/freemarker-tags.html 
b/content/tag-developers/freemarker-tags.html
index 2995b2e..869e157 100644
--- a/content/tag-developers/freemarker-tags.html
+++ b/content/tag-developers/freemarker-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Freemarker Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/freemarker-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="freemarker-tags">FreeMarker Tags</h1>
 
diff --git a/content/tag-developers/freemarker.html 
b/content/tag-developers/freemarker.html
index 824ed0c..863b063 100644
--- a/content/tag-developers/freemarker.html
+++ b/content/tag-developers/freemarker.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Freemarker</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/freemarker.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="freemarker">FreeMarker</h1>
 
diff --git a/content/tag-developers/generic-tags.html 
b/content/tag-developers/generic-tags.html
index 48b81be..f22fa54 100644
--- a/content/tag-developers/generic-tags.html
+++ b/content/tag-developers/generic-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Generic Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/generic-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="generic-tags">Generic Tags</h1>
 
diff --git a/content/tag-developers/index.html 
b/content/tag-developers/index.html
index 9f86175..e2b64bf 100644
--- a/content/tag-developers/index.html
+++ b/content/tag-developers/index.html
@@ -132,40 +132,40 @@
 <p>The framework offers a flexible view layer that supports multiple view 
technologies, including JSP, FreeMaker, and Velocity.</p>
 
 <ul>
-  <li><a href="struts-tags.html">Struts Tags</a>
+  <li><a href="struts-tags">Struts Tags</a>
     <ul>
-      <li><a href="generic-tags.html">Generic Tags</a></li>
-      <li><a href="ui-tags.html">UI Tags</a></li>
-      <li><a href="themes-and-templates.html">Themes and Templates</a></li>
-      <li><a href="tag-reference.html">Tag Reference</a></li>
-      <li><a href="ajax-tags.html">Ajax Tags</a>
+      <li><a href="generic-tags">Generic Tags</a></li>
+      <li><a href="ui-tags">UI Tags</a></li>
+      <li><a href="themes-and-templates">Themes and Templates</a></li>
+      <li><a href="tag-reference">Tag Reference</a></li>
+      <li><a href="ajax-tags">Ajax Tags</a>
         <ul>
-          <li><a href="ajax-and-javascript-recipes.html">Ajax and JavaScript 
Recipes</a></li>
+          <li><a href="ajax-and-javascript-recipes">Ajax and JavaScript 
Recipes</a></li>
         </ul>
       </li>
     </ul>
   </li>
-  <li><a href="ognl.html">OGNL</a>
+  <li><a href="ognl">OGNL</a>
     <ul>
-      <li><a href="ognl-basics.html">OGNL Basics</a></li>
-      <li><a href="ognl-expression-compilation.html">OGNL Expression 
compilation</a></li>
+      <li><a href="ognl-basics">OGNL Basics</a></li>
+      <li><a href="ognl-expression-compilation">OGNL Expression 
compilation</a></li>
     </ul>
   </li>
-  <li><a href="tag-syntax.html">Tag Syntax</a></li>
-  <li><a href="alt-syntax.html">Alt Syntax</a></li>
-  <li><a href="jsp.html">JSP</a>
+  <li><a href="tag-syntax">Tag Syntax</a></li>
+  <li><a href="alt-syntax">Alt Syntax</a></li>
+  <li><a href="jsp">JSP</a>
     <ul>
-      <li><a href="jsp-tags.html">specific tags</a></li>
+      <li><a href="jsp-tags">specific tags</a></li>
     </ul>
   </li>
-  <li><a href="freemarker.html">FreeMarker</a>
+  <li><a href="freemarker">FreeMarker</a>
     <ul>
-      <li><a href="freemarker-tags.html">specific tags</a></li>
+      <li><a href="freemarker-tags">specific tags</a></li>
     </ul>
   </li>
-  <li><a href="velocity.html">Velocity</a>
+  <li><a href="velocity">Velocity</a>
     <ul>
-      <li><a href="velocity-tags.html">specific tags</a></li>
+      <li><a href="velocity-tags">specific tags</a></li>
     </ul>
   </li>
 </ul>
diff --git a/content/tag-developers/jsp-tags.html 
b/content/tag-developers/jsp-tags.html
index eab3bbd..0205ad3 100644
--- a/content/tag-developers/jsp-tags.html
+++ b/content/tag-developers/jsp-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>JSP Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/jsp-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="jsp-tags">JSP Tags</h1>
 
diff --git a/content/tag-developers/jsp.html b/content/tag-developers/jsp.html
index 492157e..146c397 100644
--- a/content/tag-developers/jsp.html
+++ b/content/tag-developers/jsp.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>JSP</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/jsp.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="jsp">JSP</h1>
 
diff --git a/content/tag-developers/ognl-basics.html 
b/content/tag-developers/ognl-basics.html
index 6018617..9168e76 100644
--- a/content/tag-developers/ognl-basics.html
+++ b/content/tag-developers/ognl-basics.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>OGNL Basics</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ognl-basics.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="ognl-basics">OGNL Basics</h1>
 
diff --git a/content/tag-developers/ognl-expression-compilation.html 
b/content/tag-developers/ognl-expression-compilation.html
index a4b6ab0..a693688 100644
--- a/content/tag-developers/ognl-expression-compilation.html
+++ b/content/tag-developers/ognl-expression-compilation.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>OGNL Expression Compilation</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ognl-expression-compilation.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="ognl-expression-compilation">OGNL Expression 
Compilation</h1>
 
diff --git a/content/tag-developers/ognl.html b/content/tag-developers/ognl.html
index e1d74f4..e98e3e5 100644
--- a/content/tag-developers/ognl.html
+++ b/content/tag-developers/ognl.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>OGNL</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ognl.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="ognl">OGNL</h1>
 
diff --git a/content/tag-developers/selecting-template-directory.html 
b/content/tag-developers/selecting-template-directory.html
index 151c35e..c3fa638 100644
--- a/content/tag-developers/selecting-template-directory.html
+++ b/content/tag-developers/selecting-template-directory.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/selecting-template-directory.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="selecting-template-directory">Selecting Template Directory</h1>
 
 <p>Template directory can be selected using several different rules, in this 
order:</p>
diff --git a/content/tag-developers/selecting-themes.html 
b/content/tag-developers/selecting-themes.html
index 9247820..3f7d8ee 100644
--- a/content/tag-developers/selecting-themes.html
+++ b/content/tag-developers/selecting-themes.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/selecting-themes.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 id="selecting-themes">Selecting Themes</h1>
 
 <p>Themes can be selected using several different rules, in this order:</p>
diff --git a/content/tag-developers/struts-tags.html 
b/content/tag-developers/struts-tags.html
index 534eb39..f14088a 100644
--- a/content/tag-developers/struts-tags.html
+++ b/content/tag-developers/struts-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Struts Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/struts-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="struts-tags">Struts Tags</h1>
 
diff --git a/content/tag-developers/tag-reference.html 
b/content/tag-developers/tag-reference.html
index 47a27ab..e2679d9 100644
--- a/content/tag-developers/tag-reference.html
+++ b/content/tag-developers/tag-reference.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Tag Reference</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/tag-reference.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="tag-reference">Tag Reference</h1>
 
diff --git a/content/tag-developers/tag-syntax.html 
b/content/tag-developers/tag-syntax.html
index b776fe2..4d9c7d4 100644
--- a/content/tag-developers/tag-syntax.html
+++ b/content/tag-developers/tag-syntax.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Tag Syntax</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/tag-syntax.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 class="no_toc" id="tag-syntax">Tag Syntax</h1>
 
diff --git a/content/tag-developers/template-loading.html 
b/content/tag-developers/template-loading.html
index 553b5cd..ba6c793 100644
--- a/content/tag-developers/template-loading.html
+++ b/content/tag-developers/template-loading.html
@@ -127,8 +127,6 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/template-loading.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
-    
     <h1 class="no_toc" id="template-loading">Template Loading</h1>
 
 <ul id="markdown-toc">
diff --git a/content/tag-developers/themes-and-templates.html 
b/content/tag-developers/themes-and-templates.html
index 7cf5b29..4e98630 100644
--- a/content/tag-developers/themes-and-templates.html
+++ b/content/tag-developers/themes-and-templates.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Themes and Templates</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/themes-and-templates.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="themes-and-templates">Themes and Templates</h1>
 
diff --git a/content/tag-developers/ui-tags.html 
b/content/tag-developers/ui-tags.html
index dea6137..86c92ea 100644
--- a/content/tag-developers/ui-tags.html
+++ b/content/tag-developers/ui-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>UI Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/ui-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="ui-tags">UI Tags</h1>
 
diff --git a/content/tag-developers/velocity-tags.html 
b/content/tag-developers/velocity-tags.html
index 5033ff3..fd512ab 100644
--- a/content/tag-developers/velocity-tags.html
+++ b/content/tag-developers/velocity-tags.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Velocity Tags</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">
@@ -127,7 +127,7 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/velocity-tags.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="velocity-tags">Velocity Tags</h1>
 
@@ -159,7 +159,7 @@ where <strong>tag</strong> is any of the <a 
href="struts-tags">Struts Tags</a> s
 
 <p>Some VM tags require an #end statement while others do not. The 
inconsistency arises from a limitation in Velocity 
 where tags must declare if they are a <em>block</em> or <em>inline</em> tag up 
front. As such, by default all tags are <em>inline</em> 
-except for a few key ones, such as the <a href="form-tag.html">form</a> 
tag.</p>
+except for a few key ones, such as the <a href="form-tag">form</a> tag.</p>
 
   </section>
 </article>
diff --git a/content/tag-developers/velocity.html 
b/content/tag-developers/velocity.html
index df7d5e5..cdde396 100644
--- a/content/tag-developers/velocity.html
+++ b/content/tag-developers/velocity.html
@@ -7,7 +7,7 @@
   <meta http-equiv="Content-Language" content="en"/>
   <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
 
-  <title>Tag Developers Guide</title>
+  <title>Velocity</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">
@@ -127,57 +127,42 @@
   <section class="col-md-12">
     <a class="edit-on-gh" 
href="https://github.com/apache/struts-site/edit/master/source/tag-developers/velocity.md";
 title="Edit this page on GitHub">Edit on GitHub</a>
     
-    <a href="index.html" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
+    <a href="index" title="back to Tag Developers Guide"><< back to Tag 
Developers Guide</a>
     
     <h1 id="velocity">Velocity</h1>
 
 <p>Velocity is a templating language for Java.</p>
 
-<p>For more information on Velocity itself, please visit the <a 
href="http://velocity.apache.org/";>Velocity 
website</a>^[http://velocity.apache.org/].</p>
+<p>For more information on Velocity itself, please visit the <a 
href="http://velocity.apache.org/";>Velocity website</a>.</p>
 
 <blockquote>
-
-</blockquote>
-
-<blockquote>
-
-</blockquote>
-
-<blockquote>
-  <p>Velocity is similar to <a href="freemarker.html">FreeMarker</a>, as both 
are template languages that can be used outside of a Servlet container. The 
framework uses FreeMarker internally since it has better error reporting. 
Developers may also like that FreeMarker supports JSP taglibs. However, both 
are good alternatives to JSP.</p>
-</blockquote>
-
-<blockquote>
-
+  <p>Velocity is similar to <a href="freemarker">FreeMarker</a>, as both are 
template languages that can be used outside 
+of a Servlet container. The framework uses FreeMarker internally since it has 
better error reporting. 
+Developers may also like that FreeMarker supports JSP taglibs. However, both 
are good alternatives to JSP.</p>
 </blockquote>
 
 <h2 id="getting-started">Getting Started</h2>
 
-<p>Getting started with Velocity is as simple as ensuring all the dependencies 
are included in your project’s classpath. Other than that, 
<em>struts-default.xml</em>  already configures the <em>Velocity Result</em> 
.</p>
+<p>Getting started with Velocity is as simple as ensuring all the dependencies 
are included in your project’s classpath. 
+Other than that, <code class="highlighter-rouge">struts-default.xml</code>  
already configures the <a href="../core-developers/velocity-result">Velocity 
Result</a>.</p>
 
 <p><strong>struts.xml</strong></p>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>
-<span class="nt">&lt;action</span> <span class="na">name=</span><span 
class="s">"test"</span> <span class="na">class=</span><span 
class="s">"com.acme.TestAction"</span><span class="nt">&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;action</span> <span 
class="na">name=</span><span class="s">"test"</span> <span 
class="na">class=</span><span class="s">"com.acme.TestAction"</span><span 
class="nt">&gt;</span>
     <span class="nt">&lt;result</span> <span class="na">name=</span><span 
class="s">"success"</span> <span class="na">type=</span><span 
class="s">"velocity"</span><span class="nt">&gt;</span>test-success.vm<span 
class="nt">&lt;/result&gt;</span>
 <span class="nt">&lt;/action&gt;</span>
-
 </code></pre></div></div>
 
 <p><strong>test-success.vm</strong></p>
 
-<div class="language-html highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>
-<span class="nt">&lt;html&gt;</span>
+<div class="language-html highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code><span class="nt">&lt;html&gt;</span>
 <span class="nt">&lt;head&gt;</span>
     <span class="nt">&lt;title&gt;</span>Hello<span 
class="nt">&lt;/title&gt;</span>
 <span class="nt">&lt;/head&gt;</span>
-<span class="nt">&lt;body&gt;</span>
-
-Hello, ${name}
-
-<span class="nt">&lt;/body&gt;</span>
+    <span class="nt">&lt;body&gt;</span>
+    Hello, ${name}
+    <span class="nt">&lt;/body&gt;</span>
 <span class="nt">&lt;/html&gt;</span>
-
 </code></pre></div></div>
 
 <p>Where <code class="highlighter-rouge">name</code> is a property on the 
Action class. That’s it!</p>
@@ -197,22 +182,11 @@ Hello, ${name}
   </li>
 </ol>
 
-<p>The ordering is designed so that a default set of templates can be placed 
in a JAR (perhaps shared between applications). If a template needs to be 
overridden, a different version can be placed in the web application.</p>
+<p>The ordering is designed so that a default set of templates can be placed 
in a JAR (perhaps shared between applications).
+If a template needs to be overridden, a different version can be placed in the 
web application.</p>
 
-<table>
-  <tbody>
-    <tr>
-      <td>Unlike JSPs, templates can be loaded from a JAR. Templates are a 
great way to support “plugins”, since the entire module can be delivered in a 
single JAR, and the views easily customized by the host application.</td>
-    </tr>
-  </tbody>
-</table>
-
-<table>
-  <tbody>
-    <tr>
-    </tr>
-  </tbody>
-</table>
+<p>Unlike JSPs, templates can be loaded from a JAR. Templates are a great way 
to support “plugins”, since the entire 
+module can be delivered in a single JAR, and the views easily customized by 
the host application.</p>
 
 <h2 id="variable-resolution">Variable Resolution</h2>
 
@@ -230,12 +204,12 @@ Hello, ${name}
   </li>
 </ol>
 
-<p>Since the action context is resolved after the value stack, you can 
reference the variable without the typical preceding marker (#) that has to be 
used with the JSP <code class="highlighter-rouge">s:property</code> tag. 
Omitting the marker can be convenient, but it can also trip you up, if used 
carelessly.</p>
+<p>Since the action context is resolved after the value stack, you can 
reference the variable without the typical preceding 
+marker (<code class="highlighter-rouge">#</code>) that has to be used with the 
JSP <code class="highlighter-rouge">s:property</code> tag. Omitting the marker 
can be convenient, but it can also 
+trip you up, if used carelessly.</p>
 
-<div class="highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>
-#surl "id=url" "value=http://www.yahoo.com";
+<div class="highlighter-rouge"><div class="highlight"><pre 
class="highlight"><code>#surl "id=url" "value=http://www.yahoo.com";
 Click &lt;a href="${url}"&gt;here&lt;/a&gt;!
-
 </code></pre></div></div>
 
 <p>The Stuts2-Velocity integration layer provides several implicit 
variables.</p>
@@ -289,8 +263,7 @@ Click &lt;a href="${url}"&gt;here&lt;/a&gt;!
 
 <h2 id="configuring-velocity">Configuring Velocity</h2>
 
-<p>You can configure Velocity by placing configuration items in 
<em>velocity.properties</em> .</p>
-
+<p>You can configure Velocity by placing configuration items in <a 
href="../core-developers/velocity-properties">velocity.properties</a>.</p>
 
   </section>
 </article>

Reply via email to