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 <[email protected]>
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"><s:set/></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"><s:set name="'a'" value="{ 1, 2, 3, 4 }"
scope="request"/>
-</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>
-<sample:tag value="${a[1]}"/>
+<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"><s:set/></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"><%@ taglib uri="/WEB-INF/tld/wwel.tld"
prefix="x" %>
+<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"><?xml version="1.0"
encoding="UTF-8" ?></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"><?xml version="1.0"?></span>
-<span class="nt"><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">></span>
-
-<span class="nt"><description></span>
-This taglib enables access to the ValueStack
-from JSP 2.0 Expression Language
-<span class="nt"></description></span>
-
-<span class="nt"><tlib-version></span>1.0<span
class="nt"></tlib-version></span>
-
-<span class="nt"><short-name></span>wwel<span
class="nt"></short-name></span>
-
-<span class="nt"><function></span>
- <span class="nt"><name></span>vs<span
class="nt"></name></span>
- <span
class="nt"><function-class></span>com.nmote.wwel.Functions<span
class="nt"></function-class></span>
- <span class="nt"><function-signature></span>
- java.lang.Object findOnValueStack(java.lang.String)
- <span class="nt"></function-signature></span>
-<span class="nt"></function></span>
-
-<span class="nt"><function></span>
- <span class="nt"><name></span>name<span
class="nt"></name></span>
- <span
class="nt"><function-class></span>com.nmote.wwel.Functions<span
class="nt"></function-class></span>
- <span class="nt"><function-signature></span>
- java.lang.Object getActionName()
- <span class="nt"></function-signature></span>
-<span class="nt"></function></span>
-
-<span class="nt"><function></span>
- <span class="nt"><name></span>top<span
class="nt"></name></span>
- <span
class="nt"><function-class></span>com.nmote.wwel.Functions<span
class="nt"></function-class></span>
- <span class="nt"><function-signature></span>
- java.lang.Object getTopOfValueStack()
- <span class="nt"></function-signature></span>
-<span class="nt"></function></span>
-
-<span class="nt"></taglib></span>
+<span class="cp"><!DOCTYPE struts PUBLIC
+ "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
+ "http://struts.apache.org/dtds/struts-2.5.dtd"></span>
+
+<span class="nt"><struts></span>
+ <span class="nt"><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">/></span>
+<span class="nt"></struts></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"><</span><span
class="n">IMyPlugin</span><span class="o">></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"><</span><span
class="n">String</span><span class="o">></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"><</span><span class="n">IMyPlugin</span><span
class="o">>();</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"><</span><span class="n">IMyPlugin</span><span
class="o">></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"><s:iterator id="plugin" value="plugins">
+ <s:property value="#plugin.saySomething()"/>
+</s:iterator>
+</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"><s:set/></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"><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">></span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="nt"><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">></span>
<span class="nt"><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">></span>test-success.vm<span
class="nt"></result></span>
<span class="nt"></action></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"><html></span>
+<div class="language-html highlighter-rouge"><div class="highlight"><pre
class="highlight"><code><span class="nt"><html></span>
<span class="nt"><head></span>
<span class="nt"><title></span>Hello<span
class="nt"></title></span>
<span class="nt"></head></span>
-<span class="nt"><body></span>
-
-Hello, ${name}
-
-<span class="nt"></body></span>
+ <span class="nt"><body></span>
+ Hello, ${name}
+ <span class="nt"></body></span>
<span class="nt"></html></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 <a href="${url}">here</a>!
-
</code></pre></div></div>
<p>The Stuts2-Velocity integration layer provides several implicit
variables.</p>
@@ -289,8 +263,7 @@ Click <a href="${url}">here</a>!
<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>