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"><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>