http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/crud-demo-i.html
----------------------------------------------------------------------
diff --git a/content/docs/crud-demo-i.html b/content/docs/crud-demo-i.html
index 6715a74..8e6d6b3 100644
--- a/content/docs/crud-demo-i.html
+++ b/content/docs/crud-demo-i.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' 
type='text/javascript'></script>
-    <script type="text/javascript">
-        SyntaxHighlighter.defaults['toolbar'] = false;
-        SyntaxHighlighter.all();
-    </script>
     <script type="text/javascript" language="javascript">
         var hide = null;
         var show = null;
@@ -141,7 +127,7 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><h1 
id="CRUDDemoI-Struts2CRUDExample">Struts 2 CRUD Example</h1>
 
-<div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Due to the export of the wiki to 
static pages, attachements are not visible. You can find the .war with the 
source <a shape="rect" class="external-link" 
href="crud-demo-i.data/struts-crud.war" rel="nofollow">here</a></p></div></div>
+<rich-text-body><p>Due to the export of the wiki to static pages, attachements 
are not visible. You can find the .war with the source <a shape="rect" 
class="external-link" href="crud-demo-i.data/struts-crud.war" 
rel="nofollow">here</a></p></rich-text-body>
 
 <h2 id="CRUDDemoI-Introduction">Introduction</h2>
 
@@ -154,8 +140,7 @@ under the License.
 <h3 id="CRUDDemoI-.warlayout">.war layout</h3>
 
 <p>The .zip file you can download on this site can be dropped in your servlet 
container (rename it to .war then) and contains the source code under the 
WEB-INF directory. The layout is also kept as simple as possible:</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 - struts-crud
 -- [css] (contains the stylesheets)
 -- [WEB-INF]
@@ -165,8 +150,7 @@ under the License.
 ---- [src] (contains the source files)
 ---- web.xml (our webapplication descriptor)
 -- index.html (simple redirect page)
-</pre>
-</div></div>
+</plain-text-body>
 
 <h3 id="CRUDDemoI-Configurationfiles">Configuration files</h3>
 
@@ -174,8 +158,7 @@ under the License.
 <h4 id="CRUDDemoI-WEB-INF/web.xml">WEB-INF/web.xml</h4>
 
 <p>The webapplication's descriptor file contains one filter and its mapping. 
By default, the filter is mapped to /*, meaning all requests will be 
intercepted, but only those ending with a specific suffix (.action, by default) 
and certain special paths (for static files) will be processed and handled by 
Struts 2.</p>
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;web-app&gt;
     &lt;display-name&gt;Struts 2 CRUD Demo&lt;/display-name&gt;
     &lt;filter&gt;
@@ -188,8 +171,7 @@ under the License.
         &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
     &lt;/filter-mapping&gt;
 &lt;/web-app&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>See <a shape="rect" href="webxml.html">web.xml</a> for further details.</p>
 
@@ -199,12 +181,13 @@ under the License.
 To understand these terms, we'll need to take a look at Struts 2's (and 
XWork's) architecture. A basic request goes a bit like this:<br clear="none">
 A request is submitted, and our ActionMapper will try to determine the correct 
Action to execute. To find it, it will look up the registered names in your 
struts.xml. If one is found, before executing the Action, it will loop through 
a defined stack of interceptors.</p>
 
-<div class="navmenu" style="float:right; width:200px; background:white; 
margin:3px; padding:3px">
-  <div class="confluence-information-macro 
confluence-information-macro-tip"><p class="title">Developer Info</p><span 
class="aui-icon aui-icon-small aui-iconfont-approve 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>    <a shape="rect" href="interceptors.html" title="Interceptors">Learn 
More About Interceptors</a></p>
+<plain-text-body>{float:right|width=200px}
+  {tip:title=Developer Info}
+    [Learn More About Interceptors|Interceptors]
 
-<p>    <a shape="rect" href="parameters-interceptor.html" title="Parameters 
Interceptor">Learn About the Parameters Interceptor</a></p>
-</div></div></div>
+    [Learn About the Parameters Interceptor|Parameters Interceptor]
+  {tip}
+{float}</plain-text-body>
 
 <p>Interceptors are a very important part of S2 - they will be invoked before 
and after your action is executed and the view is rendered, and as such, they 
are perfect for validation, authentication, open-session-in-view patterns, 
catching exceptions, setting or altering parameters, hiding complex operations, 
and more. S2 provides a number of prebuilt stacks with a ranging number of 
features, but nothing keeps you from defining your own interceptor stack with 
custom interceptors.</p>
 
@@ -218,8 +201,7 @@ A request is submitted, and our ActionMapper will try to 
determine the correct A
 
 <p>Let us take a more detailed look at our <a shape="rect" 
href="strutsxml.html">struts.xml</a>:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;struts&gt;
     &lt;!-- Configuration for the default package. --&gt;
     &lt;package name="default" extends="struts-default"&gt;
@@ -240,8 +222,7 @@ A request is submitted, and our ActionMapper will try to 
determine the correct A
         &lt;/action&gt;
     &lt;/package&gt;
 &lt;/struts&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>There are four major elements covered in this example: package, 
interceptor, action, and result.</p>
 
@@ -265,16 +246,14 @@ A request is submitted, and our ActionMapper will try to 
determine the correct A
 
 <p>This file only contains two lines, and is used to set Struts 2 specific 
settings (such as which IoC container to use, which fileuploader, what 
templates, etc ..). You don't really need it, but for i18n reasons, we use it 
to register our resource bundle 'guest.properties'. Note that you can register 
properties file on different levels in Struts 2.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 struts.custom.i18n.resources=guest
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>More information on <a shape="rect" 
href="strutsproperties.html">struts.properties</a></p>
 
-<div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>It is recommended that configuration be handled with your <a shape="rect" 
href="strutsxml.html">struts.xml</a> file: see <a shape="rect" 
href="constant-configuration.html">Constant Configuration</a> for 
details.</p></div></div>
+<rich-text-body>
+<p>It is recommended that configuration be handled with your <a shape="rect" 
href="strutsxml.html">struts.xml</a> file: see <a shape="rect" 
href="constant-configuration.html">Constant Configuration</a> for 
details.</p></rich-text-body>
 
 <h4 
id="CRUDDemoI-WEB-INF/classes/guest.properties">WEB-INF/classes/guest.properties</h4>
 
@@ -285,8 +264,7 @@ struts.custom.i18n.resources=guest
 <p>Since 90% of the code is identical to the other CRUD examples displayed on 
<a shape="rect" class="external-link" href="http://www.learntechnology.net"; 
rel="nofollow">this site</a>, we'll only analyze the Action class, 
EmployeeAction.<br clear="none">
 As always, first things first - the class definition:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 ...
 import com.opensymphony.xwork2.ActionSupport;
 import com.opensymphony.xwork2.Preparable;
@@ -294,8 +272,7 @@ import com.opensymphony.xwork2.Preparable;
 
 public class EmployeeAction extends ActionSupport implements Preparable {
        ...
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Now, first there is the extending of the ActionSupport class - although you 
don't have to extend it, it provides a lot of useful extras, so you are 
encouraged to extend and override parts of it, but you don't have to. The 
interface we are implementing is a bit more interesting. The Preparable 
interface only defines one method, public void prepare(). By implementing this 
interface in your Action, you tell the prepare interceptor to call this method 
on your Action - so that makes it perfect to, for example, retrieve objects 
from a database, which is what we're 'faking' here by requesting an Employee 
object from the EmployeeService.</p>
 
@@ -305,14 +282,12 @@ public class EmployeeAction extends ActionSupport 
implements Preparable {
 
 <p>Let's explore the doList method, which is the default method we specified 
in our struts.xml for our index action.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 public String doList() {
        employees = empService.getAllEmployees();
        return SUCCESS;
 }
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Surprisingly simple, no? Simply fill in the employees object, and return 
"success" (defined as a final static variable SUCCESS). That's it? That's it. 
The only thing you need now to show the list in your view layer is a simple 
getter for employees in your Action. The reason for this is another Struts 2 
feature: the ValueStack.</p>
 
@@ -330,28 +305,24 @@ public String doList() {
 
 <p>S2 defines a lot of tags that will dramatically speed up your development. 
They can alter or query the value stack, render input forms, javascript 
widgets, iterate over collection, and so on. On top of that, they have 
different themes, which add even more functionality/layout by the switch of a 
parameter. Themes are out of the scope of this example, but you should 
definitely check them out; see <a shape="rect" 
href="themes-and-templates.html">Themes and Templates</a>.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;%@taglib prefix="s" uri="/struts-tags" %&gt;
 
 &lt;head&gt;
     &lt;link href="&lt;s:url value='/css/main.css'/&gt;" rel="stylesheet" 
type="text/css"/&gt;
     &lt;title&gt;&lt;s:text name="label.employees"/&gt;&lt;/title&gt;
 &lt;/head&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>The <code>s:url</code> tag allows you to build urls for actions, possibly 
with parameters. This saves you from having to type them out manually, remember 
(or change) what action suffix you're using, or include the web-app context. 
See <a shape="rect" href="url.html">Url</a> for further details.</p>
 
 <p>The <code>s:text</code> tag will look up keys in resource bundles in the 
valueStack (depending on the locale). So adding a new language would be a 
breeze. In these cases we build an url '/css/main' and we display the value of 
a key 'label.employees' from our guest.properties resource bundle. See <a 
shape="rect" href="text.html">Text</a> for further details.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:url id="url" action="crud!input" /&gt;
 
 &lt;a href="&lt;s:property value="#url"/&gt;"&gt;Add New Employee&lt;/a&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Here we use <code>s:url</code> to generate a URL and assign it to an ID so 
we can refer to it later.</p>
 
@@ -361,8 +332,8 @@ public String doList() {
 
 <p>The S2 ActionMapper doesn't just map names to Actions - it can also change 
the method, or even action, by using special requests. The weird value we 
encountered above, crud!input, tells the ActionMapper to invoke the 
input()/doInput() method of the Action known as crud. So for example, you could 
have several slighly different methods, and rather than having to register each 
of them in the struts.xml file, you can use the ! notation to specify which 
method to execute.</p>
 
-<div class="confluence-information-macro 
confluence-information-macro-information"><span class="aui-icon aui-icon-small 
aui-iconfont-info confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>You may also use <a shape="rect" href="wildcard-mappings.html">Wildcard 
Mappings</a> to run specific methods rather than use the ! 
character.</p></div></div>
+<rich-text-body>
+<p>You may also use <a shape="rect" href="wildcard-mappings.html">Wildcard 
Mappings</a> to run specific methods rather than use the ! 
character.</p></rich-text-body>
 
 <p>Another thing is the fact that you can override which action/method to 
invoke based on a special name:action parameter, which we'll use later on in 
our employeeForm.jsp to make a nice cancel button.</p>
 
@@ -372,27 +343,23 @@ public String doList() {
 
 <p>Take a look at the following lines from our employees.jsp:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:iterator value="employees" status="status"&gt;
     &lt;tr class="&lt;s:if 
test="#status.even"&gt;even&lt;/s:if&gt;&lt;s:else&gt;odd&lt;/s:else&gt;"&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>The <code>s:iterator</code> tag does pretty much what you expect from it: 
it loops through an array/list/collection, and pushes each object it encounters 
on the stack on each iteration. It also has a helper attribute called 
<code>status</code>, which generates a status object that keep track of the 
index, tells you if you're in an even or odd row, and so on, while you're 
inside the <code>s:iterator</code> tag. See <a shape="rect" 
href="iterator.html">iterator</a> for further details.</p>
 
 <p>As you can see, we use that same status object in our next tag, the 
<code>s:if</code> and its companion, the <code>s:else</code> tag. The test 
attribute of <code>s:if</code> allows you to query the valueStack with an OGNL 
expression, which is exactly what we do here: see if the status object from our 
<code>s:iterator</code> tag we put on the valueStack, returns true when the 
method isEven() is invoked. The corresponding <code>s:else</code> method is 
then executed if the test method return false.</p>
 
-<div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>Unlike JSTL's 
<code>c:choose</code>/<code>c:when</code>/<code>c:otherwise</code> tags you do 
not nest <code>s:if</code>/<code>s:else</code> inside a "parent" 
tag.</p></div></div>
+<rich-text-body>
+<p>Unlike JSTL's 
<code>c:choose</code>/<code>c:when</code>/<code>c:otherwise</code> tags you do 
not nest <code>s:if</code>/<code>s:else</code> inside a "parent" 
tag.</p></rich-text-body>
 
 <p>Finally, there's the <code>s:property</code> tag, which is used for 
displaying objects/expressions from the ValueStack. Examine this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:property value="age" /&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>This might be a little confusing at first, but it's very simple. This 
actually translates to top.getAge(), meaning we'll execute a getAge() on the 
top object on our ValueStack. Which happens to be .. the Action? Nope. The 
employees List? Closer. The current Employee object in the employee list? 
Bingo.</p>
 
@@ -402,13 +369,11 @@ public String doList() {
 
 <p>Easy enough: return "input" from your Action, and register the result in 
your struts.xml with a dispatcher to employeeForm.jsp.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 public String doInput() {
     return INPUT;
 }
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Nothing to it. So let's take a look at how we are going to edit an 
Employee.</p>
 
@@ -432,11 +397,9 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>Register the DepartmentAction in your struts.xml as 'department', and you 
can simply call it in your page, and use the id approach we used in the s:url 
tag to store the result on the stack under a custom name called 
allDepartments:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:action name="department!list" id="allDepartments"/&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Now, this, by itself, does not do much. We'll show you later when we talk 
about the employeeForm page how to use it as an alternative approach.</p>
 
@@ -448,16 +411,14 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>But first, we find another useful tag: <code>s:set</code>.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:if test="employee==null || employee.employeeId == null"&gt;
     &lt;s:set name="title" value="%{'Add new employee'}"/&gt;
 &lt;/s:if&gt;
 &lt;s:else&gt;
     &lt;s:set name="title" value="%{'Update employee'}"/&gt;
 &lt;/s:else&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>The set tag allows you to store certain objects on the stack (as well as 
their scope - request/session/page/...), which is what we're going to do here 
because out of sheer laziness (and performance reasons) we refuse to do the 
same if/else more than once. As you can guess, it relies on the same principle 
as the id attribute of the <code>s:url</code> tag we saw earlier, meaning I can 
access it with <code>#title</code> on the ValueStack.</p>
 
@@ -465,8 +426,7 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <h4 id="CRUDDemoI-Theactualform">The actual form</h4>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:form action="crud!save" method="post"&gt;
     &lt;s:textfield name="employee.firstName" value="%{employee.firstName}" 
label="%{getText('label.firstName')}" size="40"/&gt;
     &lt;s:textfield name="employee.lastName" value="%{employee.lastName}" 
label="%{getText('label.lastName')}" size="40"/&gt;
@@ -476,23 +436,19 @@ Here we'll show you both, but in the example application 
you'll only find the fi
     &lt;s:submit value="%{getText('button.label.submit')}"/&gt;
     &lt;s:submit value="%{getText('button.label.cancel')}" 
name="redirect-action:index"/&gt;
 &lt;/s:form&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Wow - a lot of code at once. Let's dissect it tag by tag. It may seem 
complicated, but as you'll see, it's actually really easy.</p>
 
 <p>The <code>s:form</code> tag generates a standard html form, while the first 
<code>s:textfield</code> will generate an &lt;input type="text" .. /&gt; - but 
wait, it does more. It transforms your first tag from this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:textfield name="employee.firstName" value="%{employee.firstName}" 
label="%{getText('label.firstName')}" size="40"/&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Into this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;tr&gt;
     &lt;td class="tdLabel"&gt;
         &lt;label for="crud!save_employee_firstName" class="label"&gt;First 
Name:&lt;/label&gt;
@@ -501,8 +457,7 @@ Here we'll show you both, but in the example application 
you'll only find the fi
         &lt;input type="text" name="employee.firstName" size="40" value="" 
id="crud!save_employee_firstName"/&gt;
     &lt;/td&gt;
 &lt;/tr&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Let's analyze that <code>s:textfield</code> tag in greater detail. First 
thing we encounter is the name attribute, which is similar to the HTML input 
tag's name attribute. So it is by itself, not very special. However, as we've 
seen above, this allows S2 to call the getEmployee().setFirstName() method - 
and even, if necessary, create the Employee object for you. </p>
 
@@ -516,42 +471,34 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>Now, we saw earlier that we could use the <code>s:text</code> tag to 
retrieve values from resource bundles for i18n reasons. Now that begs the 
question, how do we use those same values in our tags? Let's say we want to 
i18n'ize our textfield label. Something like this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:textfield name="employee.firstName" value="%{employee.firstName}" 
label="&lt;s:text name="label.firstName"/&gt;" size="40"/&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>Ugh. No, that's ugly, and it wouldn't work either. The solution is much 
cleaner and simpler: use another expression! If you were to check the extra 
methods provided by making our EmployeeAction extends ActionSupport, you would 
see a method called getText(String key). This method will look up a value in 
the resource bundle by its key, which is exactly what we need. So, the label 
would become something like this: %{getText('our_key')}. Makes sense? Thought 
so.</p>
 
 <p>Meet the next tag, s:select, which renders a select box using an iteratable 
collection:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:select name="employee.department.departmentId" 
value="%{employee.department.departmentId}" list="departments" 
listKey="departmentId" listValue="name"/&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
-<div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body">
-<p>  There currently is a small bug in Struts 2.0.5 that does not select the 
correct value by default. You can solve this by using 
value="%{employee.department.departmentId.toString()}".</p></div></div>
+<rich-text-body>
+<p>  There currently is a small bug in Struts 2.0.5 that does not select the 
correct value by default. You can solve this by using 
value="%{employee.department.departmentId.toString()}".</p></rich-text-body>
 
 <p>We already covered the name attribute, so let's look at the list attribute: 
departments. Hmm, this might seems strange at first. Where does it come from? 
Well, perhaps it makes much more sense to see this: list="%{departments}". Yes, 
it is in fact an expression on the ValueStack that will query our action for 
the departments we've setup before ! Then, why are we missing the %{..} ? The 
answer is twofold: you can still write %{departments}, and it would work as you 
expected. But you have to realize, that whatever you are going to iterate is 
going to be an expression! So, being pretty lazy and with all this 
Ruby-on-rails 'minimalistic' code, we decided we might as well save you a 
couple of RSI-related finger moves and let you discard the %{..}.</p>
 
 <p>Another quick intermezzo: you can use expressions to make your own list in 
an expression - which is perfect for small yes/no and male/female/eunuch 
selections - like this:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:select name="gender" list="%{#{'male':'Male', 'female':'Female'}}" /&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>By the way, did you remember the <code>s:action</code> tag we used as an 
alternative to the prepare method to fill up the select box? We can now use the 
action we executed and stored on the ValueStack by referencing it by its id:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:select name="gender" list="%{#allDepartments.departments}" /&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>So, instead of getting the departments from the current action, we used 
<code>s:action</code> to execute a different action that retrieves the 
department List. This allows you to split up, and reuse Actions (Note: you can 
go even further and program your own components with built-in actions, but 
that's out of scope).</p>
 
@@ -563,12 +510,10 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>Finally, the last two tags, the submission tags. Submission tags, yes. One 
for submitting the form, and another one to cancel it. The first submit button, 
submits the form to the form's action attribute, in case crud!save.</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;s:submit value="%{getText('button.label.submit')}"/&gt;
 &lt;s:submit value="%{getText('button.label.cancel')}" 
name="redirect-action:index"/&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>The second one is more interesting though. It also submits the form to the 
same crud!save action as the first one, but lists a special name attribute. 
This name attribute will cause the ActionMapper to intercept the call, and in 
this case, redirect it to another action. No more fiddling with javascript to 
have forms with multiple submit buttons - it's all done for you, without any 
javascript or the troubles that come with it.</p>
 
@@ -582,8 +527,7 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>Since we only want to validate the crud action, we create a file 
EmployeeAction-crud-validation.xml and place it in our classpath (mostly next 
to our compiled Action class).</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">
+<parameter ac:name="">xml</parameter><plain-text-body>
 &lt;validators&gt;
   &lt;field name="employee.firstName"&gt;
      &lt;field-validator type="requiredstring"&gt;
@@ -606,8 +550,7 @@ Here we'll show you both, but in the example application 
you'll only find the fi
       &lt;/field-validator&gt;
   &lt;/field&gt;
 &lt;/validators&gt;
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>A very important reminder: validation is once again done by an interceptor, 
so it should be in your stack. Even more important, validators 'query your 
Action/Model' and NOT your request! Keep this in mind at all times.</p>
 
@@ -634,11 +577,9 @@ Here we'll show you both, but in the example application 
you'll only find the fi
 
 <p>Take a look at the value we get back from the 
'errors.required.age.limit'-key:</p>
 
-<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">
+<plain-text-body>
 errors.required.age.limit=Please provide an age between ${min} and ${max}.
-</pre>
-</div></div>
+</plain-text-body>
 
 <p>And guess what: min and max are indeed the two parameters we just set 
before ! Using OGNL expressions you can retrieve whatever you want from your 
validator/action/context, giving you really nice error messages (we like nice 
error messages). In fact, you can not only use these expressions in your error 
messages, but you can even set the min and max parameters dynamically. 
Different types of employees could have different age requirements - OGNL and 
polymorphy to the rescue !</p>
 

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/cssxhtml-head-template.html
----------------------------------------------------------------------
diff --git a/content/docs/cssxhtml-head-template.html 
b/content/docs/cssxhtml-head-template.html
index aecd928..35875ca 100644
--- a/content/docs/cssxhtml-head-template.html
+++ b/content/docs/cssxhtml-head-template.html
@@ -141,7 +141,7 @@ under the License.
         <div class="wiki-content">
             <div id="ConfluenceContent"><p>The css_xhtml <a shape="rect" 
href="head.html">head</a> template is very similar to the <a shape="rect" 
href="xhtml-head-template.html">xhtml head template</a>. The only difference is 
that CSS that is included is specifically designed to provide the layout for 
the <a shape="rect" href="cssxhtml-theme.html">css_xhtml theme</a>. The 
contents of <strong>head.ftl</strong> are:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;#--
 /*
  * $Id$
@@ -170,7 +170,7 @@ under the License.
 </div></div>
 <p>The contents of <strong>styles.css</strong> are:</p>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 /*
  * $Id$
  *

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/cssxhtml-theme.html
----------------------------------------------------------------------
diff --git a/content/docs/cssxhtml-theme.html b/content/docs/cssxhtml-theme.html
index 1823085..8c6fd97 100644
--- a/content/docs/cssxhtml-theme.html
+++ b/content/docs/cssxhtml-theme.html
@@ -34,20 +34,6 @@ under the License.
             color:                 #666;
         }
     </style>
-    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' 
rel='stylesheet' type='text/css' />
-    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' 
rel='stylesheet' type='text/css' />
-    <script src='https://struts.apache.org/highlighter/js/shCore.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' 
type='text/javascript'></script>
-    <script src='https://struts.apache.org/highlighter/js/shBrushCss.js' 
type='text/javascript'></script>
-    <script type="text/javascript">
-        SyntaxHighlighter.defaults['toolbar'] = false;
-        SyntaxHighlighter.all();
-    </script>
     <script type="text/javascript" language="javascript">
         var hide = null;
         var show = null;
@@ -139,226 +125,7 @@ under the License.
 
     <div class="pagecontent">
         <div class="wiki-content">
-            <div id="ConfluenceContent"><p>The css_xhtml theme provides all 
the basics that the <a shape="rect" href="simple-theme.html">simple theme</a> 
provides and adds several features.</p><ul><li>Standard two-column CSS-based 
layout, using <code>&lt;div&gt;</code> for the HTML <a shape="rect" 
href="struts-tags.html">Struts Tags</a> (<a shape="rect" 
href="form.html">form</a>, <a shape="rect" href="textfield.html">textfield</a>, 
<a shape="rect" href="select.html">select</a>, etc)</li><li>Labels for each of 
the HTML <a shape="rect" href="struts-tags.html">Struts Tags</a>, placed 
according to the CSS stylesheet</li><li><a shape="rect" 
href="validation.html">Validation</a> and error reporting</li><li><a 
shape="rect" href="pure-javascript-client-side-validation.html">Pure JavaScript 
Client Side Validation</a> using 100% JavaScript on the browser</li></ul><h2 
id="css_xhtmltheme-WrappingtheSimpleTheme">Wrapping the Simple Theme</h2><p>The 
xhtml theme uses the "wrapping" technique descr
 ibed by <a shape="rect" href="extending-themes.html">Extending Themes</a>. 
Let's look at how the HTML tags are wrapped by a standard header and footer. 
For example, in the <a shape="rect" href="textfield.html">textfield</a> 
template, <code>text.ftl</code>, the <code>controlheader.ftl</code> and 
<code>controlfooter.ftl</code> templates are wrapped around the simple 
template.</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;#--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * &quot;License&quot;); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
---&gt;
-&lt;input&lt;#rt/&gt;
- type=&quot;${(parameters.type!&quot;text&quot;)?html}&quot;&lt;#rt/&gt;
- name=&quot;${(parameters.name!&quot;&quot;)?html}&quot;&lt;#rt/&gt;
-&lt;#if parameters.get(&quot;size&quot;)?has_content&gt;
- size=&quot;${parameters.get(&quot;size&quot;)?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.maxlength?has_content&gt;
- maxlength=&quot;${parameters.maxlength?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.nameValue??&gt;
- value=&quot;${parameters.nameValue?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.disabled!false&gt;
- disabled=&quot;disabled&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.readonly!false&gt;
- readonly=&quot;readonly&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.tabindex?has_content&gt;
- tabindex=&quot;${parameters.tabindex?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if parameters.id?has_content&gt;
- id=&quot;${parameters.id?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#include 
&quot;/${parameters.templateDir}/${parameters.expandTheme}/css.ftl&quot; /&gt;
-&lt;#if parameters.title?has_content&gt;
- title=&quot;${parameters.title?html}&quot;&lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#include 
&quot;/${parameters.templateDir}/${parameters.expandTheme}/scripting-events.ftl&quot;
 /&gt;
-&lt;#include 
&quot;/${parameters.templateDir}/${parameters.expandTheme}/common-attributes.ftl&quot;
 /&gt;
-&lt;#include 
&quot;/${parameters.templateDir}/${parameters.expandTheme}/dynamic-attributes.ftl&quot;
 /&gt;
-/&gt;
-]]></script>
-</div></div><h3 id="css_xhtmltheme-CSSXHTMLthemeheader">CSS XHTML theme 
header</h3><p>The header used by the HTML tags in the css_xhtml theme is 
complicated. Unlike the <a shape="rect" href="xhtml-theme.html">xhtml 
theme</a>, the CSS theme does not use a <code>labelposition</code> attribute. 
Instead, the label position is defined by CSS rules.</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;#--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * &quot;License&quot;); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
---&gt;
-&lt;#include 
&quot;/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl&quot;&gt;
-&lt;#if !parameters.labelposition?? &amp;&amp; 
(parameters.form.labelposition)??&gt;
-&lt;#assign labelpos = parameters.form.labelposition/&gt;
-&lt;#elseif parameters.labelposition??&gt;
-&lt;#assign labelpos = parameters.labelposition/&gt;
-&lt;/#if&gt;
-&lt;#if (labelpos!&quot;top&quot;) == &#39;top&#39;&gt;
-&lt;div &lt;#rt/&gt;
-&lt;#else&gt;
-&lt;span &lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if 
parameters.id??&gt;id=&quot;wwctrl_${parameters.id}&quot;&lt;#rt/&gt;&lt;/#if&gt;
 class=&quot;wwctrl&quot;&gt;
-    
-]]></script>
-</div></div><p>Note that the <code>fieldErrors</code>, usually caused by <a 
shape="rect" href="validation.html">Validation</a>, are displayed in a 
<code>div</code> block before the element is displayed.</p><h3 
id="css_xhtmltheme-CSSXHTMLthemefooter">CSS XHTML theme footer</h3><p>And the 
<code>controlfooter.ftl</code> contents:</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;#--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * &quot;License&quot;); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
---&gt;
-${parameters.after!}&lt;#t/&gt;
-    &lt;#lt/&gt;
-&lt;#if !parameters.labelposition?? &amp;&amp; 
(parameters.form.labelposition)??&gt;
-&lt;#assign labelpos = parameters.form.labelposition/&gt;
-&lt;#elseif parameters.labelposition??&gt;
-&lt;#assign labelpos = parameters.labelposition/&gt;
-&lt;/#if&gt;
-&lt;#if (labelpos!&quot;top&quot;) == &#39;top&#39;&gt;
-&lt;/div&gt; &lt;#rt/&gt;
-&lt;#else&gt;
-&lt;/span&gt; &lt;#rt/&gt;
-&lt;/#if&gt;
-&lt;#if (parameters.errorposition!&quot;top&quot;) == &#39;bottom&#39;&gt;
-&lt;#assign hasFieldErrors = parameters.name?? &amp;&amp; fieldErrors?? 
&amp;&amp; fieldErrors[parameters.name]??/&gt;
-&lt;#if hasFieldErrors&gt;
-&lt;div &lt;#rt/&gt;&lt;#if 
parameters.id??&gt;id=&quot;wwerr_${parameters.id}&quot;&lt;#rt/&gt;&lt;/#if&gt;
 class=&quot;wwerr&quot;&gt;
-&lt;#list fieldErrors[parameters.name] as error&gt;
-    &lt;div&lt;#rt/&gt;
-    &lt;#if parameters.id??&gt;
-     errorFor=&quot;${parameters.id}&quot;&lt;#rt/&gt;
-    &lt;/#if&gt;
-    class=&quot;errorMessage&quot;&gt;
-             ${error?html}
-    &lt;/div&gt;&lt;#t/&gt;
-&lt;/#list&gt;
-&lt;/div&gt;&lt;#t/&gt;
-&lt;/#if&gt;
-&lt;/#if&gt;
-&lt;/div&gt;
-]]></script>
-</div></div><h2 id="css_xhtmltheme-SpecialInterest">Special 
Interest</h2><p>Two css_xhtml templates of special interest are 
<code>head</code> and <code>form</code>.</p><h3 
id="css_xhtmltheme-Headtemplate">Head template</h3><p>The css_xhtml <a 
shape="rect" href="head.html">head</a> template is similar to the xhtml head 
template. The difference is that CSS is used to provide the layout.</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-&lt;#--
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * &quot;License&quot;); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
---&gt;
-&lt;link rel=&quot;stylesheet&quot; href=&quot;&lt;@s.url 
value=&#39;/struts/css_xhtml/styles.css&#39; includeParams=&#39;none&#39; 
encode=&#39;false&#39; /&gt;&quot; type=&quot;text/css&quot; /&gt;
-&lt;#include &quot;/${parameters.templateDir}/simple/head.ftl&quot; /&gt;
-]]></script>
-</div></div><p>The head includes a style sheet.</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
-/*
- * $Id$
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * &quot;License&quot;); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-.wwFormTable {}
-.label {
-    font-style:italic;
-    float:left;
-    width:30%
-}
-.errorLabel {font-style:italic; color:red; }
-.errorMessage {font-weight:bold; color:red; }
-.checkboxLabel {}
-.checkboxErrorLabel {color:red; }
-.required {color:red;}
-
-.tdTransferSelect {text-align:center; vertical-align:middle;}
-.tdLabelTop {text-align:left; vertical-align:top;}
-.tdCheckboxLabel {text-align:right; vertical-align:top;}
-.tdCheckboxInput {text-align:left; vertical-align:top;}
-.tdCheckboxErrorMessage {text-align:left; vertical-align:top;}
-.tdErrorMessage {text-align:center; vertical-align:top;}
-.formButton {text-align:right;}
-]]></script>
-</div></div><h3 id="css_xhtmltheme-Formtemplate">Form template</h3><p>The 
css_xhtml <a shape="rect" href="form.html">form</a> template is almost exactly 
like the <a shape="rect" href="xhtml-form-template.html">xhtml form 
template</a>, including support for <a shape="rect" 
href="pure-javascript-client-side-validation.html">Pure JavaScript Client Side 
Validation</a>. The difference is that instead of printing out an opening and 
closing <code>&lt;table&gt;</code> element, there are no elements. Instead, the 
CSS rules for the individual HTML tags are assumed to handle all display logic. 
However, as noted, client-side validation is still supported.</p></div>
+            <div id="ConfluenceContent"><p>The css_xhtml theme provides all 
the basics that the <a shape="rect" href="simple-theme.html">simple theme</a> 
provides and adds several features.</p><ul><li>Standard two-column CSS-based 
layout, using <code>&lt;div&gt;</code> for the HTML <a shape="rect" 
href="struts-tags.html">Struts Tags</a> (<a shape="rect" 
href="form.html">form</a>, <a shape="rect" href="textfield.html">textfield</a>, 
<a shape="rect" href="select.html">select</a>, etc)</li><li>Labels for each of 
the HTML <a shape="rect" href="struts-tags.html">Struts Tags</a>, placed 
according to the CSS stylesheet</li><li><a shape="rect" 
href="validation.html">Validation</a> and error reporting</li><li><a 
shape="rect" href="pure-javascript-client-side-validation.html">Pure JavaScript 
Client Side Validation</a> using 100% JavaScript on the browser</li></ul><h2 
id="css_xhtmltheme-WrappingtheSimpleTheme">Wrapping the Simple Theme</h2><p>The 
xhtml theme uses the "wrapping" technique descr
 ibed by <a shape="rect" href="extending-themes.html">Extending Themes</a>. 
Let's look at how the HTML tags are wrapped by a standard header and footer. 
For example, in the <a shape="rect" href="textfield.html">textfield</a> 
template, <code>text.ftl</code>, the <code>controlheader.ftl</code> and 
<code>controlfooter.ftl</code> templates are wrapped around the simple 
template.</p><plain-text-body>{snippet:id=all|lang=xml|url=struts2/core/src/main/resources/template/simple/text.ftl}</plain-text-body><h3
 id="css_xhtmltheme-CSSXHTMLthemeheader">CSS XHTML theme header</h3><p>The 
header used by the HTML tags in the css_xhtml theme is complicated. Unlike the 
<a shape="rect" href="xhtml-theme.html">xhtml theme</a>, the CSS theme does not 
use a <code>labelposition</code> attribute. Instead, the label position is 
defined by CSS 
rules.</p><plain-text-body>{snippet:id=all|lang=xml|url=struts2/core/src/main/resources/template/css_xhtml/controlheader.ftl}</plain-text-body><p>Note
 that the <code>fie
 ldErrors</code>, usually caused by <a shape="rect" 
href="validation.html">Validation</a>, are displayed in a <code>div</code> 
block before the element is displayed.</p><h3 
id="css_xhtmltheme-CSSXHTMLthemefooter">CSS XHTML theme footer</h3><p>And the 
<code>controlfooter.ftl</code> 
contents:</p><plain-text-body>{snippet:id=all|lang=xml|url=struts2/core/src/main/resources/template/css_xhtml/controlfooter.ftl}</plain-text-body><h2
 id="css_xhtmltheme-SpecialInterest">Special Interest</h2><p>Two css_xhtml 
templates of special interest are <code>head</code> and 
<code>form</code>.</p><h3 id="css_xhtmltheme-Headtemplate">Head 
template</h3><p>The css_xhtml <a shape="rect" href="head.html">head</a> 
template is similar to the xhtml head template. The difference is that CSS is 
used to provide the 
layout.</p><plain-text-body>{snippet:id=all|lang=xml|url=struts2/core/src/main/resources/template/css_xhtml/head.ftl}</plain-text-body><p>The
 head includes a style sheet.</p><plain-text-body>{snippet:id
 
=all|lang=xml|url=struts2/core/src/main/resources/template/css_xhtml/styles.css}</plain-text-body><h3
 id="css_xhtmltheme-Formtemplate">Form template</h3><p>The css_xhtml <a 
shape="rect" href="form.html">form</a> template is almost exactly like the <a 
shape="rect" href="xhtml-form-template.html">xhtml form template</a>, including 
support for <a shape="rect" 
href="pure-javascript-client-side-validation.html">Pure JavaScript Client Side 
Validation</a>. The difference is that instead of printing out an opening and 
closing <code>&lt;table&gt;</code> element, there are no elements. Instead, the 
CSS rules for the individual HTML tags are assumed to handle all display logic. 
However, as noted, client-side validation is still supported.</p></div>
         </div>
 
                     <div class="tabletitle">

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/customvalidator-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/customvalidator-annotation.html 
b/content/docs/customvalidator-annotation.html
index e3c052d..e86dc66 100644
--- a/content/docs/customvalidator-annotation.html
+++ b/content/docs/customvalidator-annotation.html
@@ -152,7 +152,7 @@ under the License.
 <h2 id="CustomValidatorAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 @CustomValidator(type =&quot;customValidatorName&quot;, fieldName = 
&quot;myField&quot;)
 ]]></script>
 </div></div>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/date-validator.html
----------------------------------------------------------------------
diff --git a/content/docs/date-validator.html b/content/docs/date-validator.html
index 72f1657..ebe813b 100644
--- a/content/docs/date-validator.html
+++ b/content/docs/date-validator.html
@@ -161,7 +161,7 @@ using expression can be slightly slower, see the example 
below.</p>
 
 <h1 id="datevalidator-Examples">Examples</h1>
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;validators&gt;
     &lt;!-- Plain Validator syntax --&gt;
     &lt;validator type=&quot;date&quot;&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/date.html
----------------------------------------------------------------------
diff --git a/content/docs/date.html b/content/docs/date.html
index bb75f20..4b54864 100644
--- a/content/docs/date.html
+++ b/content/docs/date.html
@@ -195,7 +195,7 @@ Following how the date component will work, depending on 
the value of nice attri
 <h2 id="date-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;s:date name=&quot;person.birthday&quot; format=&quot;dd/MM/yyyy&quot; /&gt;
 &lt;s:date name=&quot;person.birthday&quot; 
format=&quot;%{getText(&#39;some.i18n.key&#39;)}&quot; /&gt;
 &lt;s:date name=&quot;person.birthday&quot; nice=&quot;true&quot; /&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/daterangefieldvalidator-annotation.html
----------------------------------------------------------------------
diff --git a/content/docs/daterangefieldvalidator-annotation.html 
b/content/docs/daterangefieldvalidator-annotation.html
index b937214..6963860 100644
--- a/content/docs/daterangefieldvalidator-annotation.html
+++ b/content/docs/daterangefieldvalidator-annotation.html
@@ -154,7 +154,7 @@ under the License.
 <h2 id="DateRangeFieldValidatorAnnotation-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: java; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: java; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 @DateRangeFieldValidator(message = &quot;Default message&quot;, key = 
&quot;i18n.key&quot;, shortCircuit = true, min = &quot;2005/01/01&quot;, max = 
&quot;2005/12/31&quot;)
 ]]></script>
 </div></div></div>

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/default-workflow-interceptor.html
----------------------------------------------------------------------
diff --git a/content/docs/default-workflow-interceptor.html 
b/content/docs/default-workflow-interceptor.html
index cba3b9e..a9eccfb 100644
--- a/content/docs/default-workflow-interceptor.html
+++ b/content/docs/default-workflow-interceptor.html
@@ -191,7 +191,7 @@ an action / field error is found.</li></ul>
 <h2 id="DefaultWorkflowInterceptor-Examples">Examples</h2>
 
 <div class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 
 &lt;action name=&quot;someAction&quot; 
class=&quot;com.examples.SomeAction&quot;&gt;
     &lt;interceptor-ref name=&quot;params&quot;/&gt;

http://git-wip-us.apache.org/repos/asf/struts-site/blob/b16cc4ef/content/docs/dispatcher-result.html
----------------------------------------------------------------------
diff --git a/content/docs/dispatcher-result.html 
b/content/docs/dispatcher-result.html
index 68ab26c..305b872 100644
--- a/content/docs/dispatcher-result.html
+++ b/content/docs/dispatcher-result.html
@@ -159,7 +159,7 @@ is made.</li></ul><p></p><ul><li>Otherwise, {@link 
RequestDispatcher#include(jav
 is called.</li></ul><p></p><h2 
id="DispatcherResult-Parameters">Parameters</h2><p>
 </p><p></p><ul></ul><p></p><ul><li><b>location (default)</b> - the location to 
go to after execution (ex. jsp).</li></ul><p></p><ul><li><b>parse</b> - true by 
default. If set to false, the location param will not be parsed for Ognl 
expressions.</li></ul><p></p>
 <h2 id="DispatcherResult-Examples">Examples</h2><p></p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
-<script class="brush: xml; gutter: false; theme: Default" 
type="syntaxhighlighter"><![CDATA[
+<script class="brush: xml; gutter: false; theme: Confluence" 
type="syntaxhighlighter"><![CDATA[
 &lt;result name=&quot;success&quot; type=&quot;dispatcher&quot;&gt;
   &lt;param name=&quot;location&quot;&gt;foo.jsp&lt;/param&gt;
 &lt;/result&gt;

Reply via email to