You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by jo...@apache.org on 2015/05/25 12:12:13 UTC

[2/3] struts git commit: Cleanup struts2 showcase after removing of deprecated plugins

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example4.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example4.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example4.jsp
deleted file mode 100644
index e6f1b2b..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example4.jsp
+++ /dev/null
@@ -1,57 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
-<html>
-<head>
-    <title>Ajax examples - tabbled panel</title>
-
-    <jsp:include page="/WEB-INF/ajax/commonInclude.jsp"/>
-</head>
-
-<script>
-    function enableTab(id) {
-      var tabContainer = dojo.widget.byId('tabContainer');
-      tabContainer.enableTab(id);
-    }
-    
-    function disableTab(index) {
-      var tabContainer = dojo.widget.byId('tabContainer');
-      tabContainer.disableTab(index);
-    }
-</script>
-
-<body>
-    
-    <sx:tabbedpanel id="tabContainer" cssStyle="width: 500px; height: 300px;" doLayout="true">
-          <sx:div id="tab1" label="test1"  >
-              Enabled Tab
-          </sx:div >
-          <sx:div  id="tab2" label="test2"  disabled="true" >
-              Diabled Tab
-          </sx:div >
-           <sx:div  id="tab3" label="test3" >
-              Some other Tab
-          </sx:div >
-      </sx:tabbedpanel>
-
-    <br />
-    
-    <input type="button" onclick="enableTab(1)" value="Enable Tab 2 using Index" />
-    <input type="button" onclick="disableTab(1)" value="Disable Tab 2 using Index" />
-    
-    <br />
-    
-    <input type="button" onclick="enableTab('tab2')" value="Enable Tab 2 using Id" />
-    <input type="button" onclick="disableTab('tab2')" value="Disable Tab 2 using Id" />
-    
-    <br />
-    
-    <input type="button" onclick="enableTab(dojo.widget.byId('tab2'))" value="Enable Tab 2 using widget" />
-    <input type="button" onclick="disableTab(dojo.widget.byId('tab2'))" value="Disable Tab 2 using widget" />
-
-<br /> <br />     
-<s:include value="../footer.jsp"/>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5.jsp
deleted file mode 100644
index 25ed4f7..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5.jsp
+++ /dev/null
@@ -1,29 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
-<html>
-<head>
-    <title>Ajax examples - tabbled panel</title>
-
-    <jsp:include page="/WEB-INF/ajax/commonInclude.jsp"/>
-</head>
-
-<body>
-
-				<sx:tabbedpanel id="test2" cssStyle="width: 500px; height: 300px;" doLayout="true" labelposition="bottom">
-                      <sx:div id="left" label="test1" closable="true">
-                          I'm a Tab!!!
-                      </sx:div >
-                      <sx:div  id="middle" label="test2"  closable="true">
-                          I'm the other Tab!!!
-                      </sx:div >
-                     
-                  </sx:tabbedpanel>
-				  
-				
-
-<s:include value="../footer.jsp"/>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5Ok.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5Ok.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5Ok.jsp
deleted file mode 100644
index 5c3b801..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example5Ok.jsp
+++ /dev/null
@@ -1,9 +0,0 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8"
-    pageEncoding="UTF-8"%>
-<%@taglib prefix="s" uri="/struts-tags" %>
-    
-<h1>OK</h1>    
-<s:property value="name" /><br/>
-<s:property value="age" /><br/>
-    
-    
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example6.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example6.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example6.jsp
deleted file mode 100644
index 3bc62cd..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/example6.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
-<html>
-<head>
-    <title>Ajax examples - tabbled panel</title>
-
-    <jsp:include page="/WEB-INF/ajax/commonInclude.jsp"/>
-</head>
-
-<script>
-    dojo.event.topic.subscribe('/before', function(event, tab, tabContainer) {
-      alert("Before selecting tab. Set 'event.cancel=true' to prevent selection");
-    });
-    dojo.event.topic.subscribe('/after', function(tab, tabContainer) {
-      alert("After tab was selected");
-    });
-</script>
-<body>
-    
-<sx:tabbedpanel 
-    id="tabContainer"
-    cssStyle="width: 500px; height: 300px;" 
-    doLayout="true"
-    beforeSelectTabNotifyTopics="/before"
-    afterSelectTabNotifyTopics="/after">
-  <sx:div id="tab1" label="test1"  >
-      Tab 1
-  </sx:div >
-  <sx:div  id="tab2" label="test2" >
-      Tab 2
-  </sx:div >
-</sx:tabbedpanel>
-
-<br /><br />    
-<s:include value="../footer.jsp"/>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/index.jsp
deleted file mode 100644
index 196d0d4..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/index.jsp
+++ /dev/null
@@ -1,28 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<html>
-<head>
-    <title>Tabbed Panes</title>
-    <%@ include file="/WEB-INF/ajax/commonInclude.jsp" %>
-</head>
-
-<body>
-
-<h2>Examples</h2>
-
-<p>
-    <ol>
-        <li><a href="example2.jsp">A local tabbed panel width fixed size (doLayout="true")</a></li>
-        <li><a href="example4.jsp">A Local tabbed panel with disabled tabs</a></li>
-        <li><a href="example6.jsp">A Local tabbed panel that publishes topics when tabs are selected(before and after)</a></li>
-        <li><a href="example3.jsp">A remote (href != "") and local tabbed panel</a></li>
-        <li><a href="example1.jsp">Various remote and local tabbed panels (with enclosed tabbed pannels) with layout (doLayout="false")</a></li>
-        <li><a href="example5.jsp">A local tabbed panel width fixed size (doLayout="true") with close button on the tab pane (closable="true" on tabs), and tabs on the bottom (labelposition="bottom")</a></li>
-    </ol>
-
-
-</p>
-
-<s:include value="../footer.jsp"/>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel1.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel1.ftl b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel1.ftl
deleted file mode 100644
index fcc895e..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel1.ftl
+++ /dev/null
@@ -1,3 +0,0 @@
-
-Hello, <br/>
-Today is ${todayDate?html}, the time now is ${todayTime?html}

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2.ftl b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2.ftl
deleted file mode 100644
index e866e6d..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2.ftl
+++ /dev/null
@@ -1,7 +0,0 @@
-
-<div id="result">
-</div>
-<@sx.form action="panel2Submit" namespace="/nodecorate">
-	<@s.textfield label="Name" name="name" />
-	<@sx.submit targets="result" />
-</...@sx.form>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2Submit.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2Submit.ftl b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2Submit.ftl
deleted file mode 100644
index d338eac..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel2Submit.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-
-Hello, ${name?html}

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3.ftl b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3.ftl
deleted file mode 100644
index 79209df..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3.ftl
+++ /dev/null
@@ -1,9 +0,0 @@
-
-<div id="result">
-</div>
-
-<@s.form action="panel3Submit" namespace="/nodecorate">
-	<@sx.autocompleter label="Gender" name="gender" list="%{#{'Male':'Male','Female':'Female'}}"  />
-	<@sx.submit targets="result" />
-</...@s.form>
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3Submit.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3Submit.ftl b/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3Submit.ftl
deleted file mode 100644
index 7dacc93..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tabbedpanel/nodecorate/panel3Submit.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-
-So, you are a ${gender?html}

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/testjs.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/testjs.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/testjs.jsp
deleted file mode 100644
index 5223ef7..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/testjs.jsp
+++ /dev/null
@@ -1,14 +0,0 @@
-<%
-    request.setAttribute("decorator", "none");
-    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
-    response.setHeader("Pragma","no-cache"); //HTTP 1.0
-    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
-%>
-
-<script language="JavaScript" type="text/javascript">
-    alert('This JavaScript currently being evaluated is in the result...');
-</script>
-Show me some text also
-<script language="JavaScript" type="text/javascript">
-    alert('And some more text for fun!');
-</script>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/getCategory.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/getCategory.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/getCategory.jsp
deleted file mode 100644
index 6a56cbd..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/getCategory.jsp
+++ /dev/null
@@ -1,23 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@include file="partialChunkHeader.jsp"%>
-<ul>
-<s:iterator value="category.children">
-    <li>
-        <s:if test="children.size() > 0">
-            <sx:a href="toggle.action?catId=%{id}">+</sx:a>
-        </s:if>
-        <s:property value="name"/>
-    </li>
-    <s:if test="toggle">
-        <s:set name="display" value="'none'"/>
-    </s:if>
-    <s:else>
-        <s:set name="display" value="''"/>
-    </s:else>                                                                                     ›
-
-    <sx:div id="children_%{id}"
-            cssStyle="display: %{display}"
-            href="getCategory.action?catId=%{id}"
-            refreshListenTopic="children_%{id}"/>
-</s:iterator>
-</ul>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/partialChunkHeader.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/partialChunkHeader.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/partialChunkHeader.jsp
deleted file mode 100644
index 01113d6..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/partialChunkHeader.jsp
+++ /dev/null
@@ -1,6 +0,0 @@
-<%
-    request.setAttribute("decorator", "none");
-    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
-    response.setHeader("Pragma","no-cache"); //HTTP 1.0
-    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
-%>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/toggle.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/toggle.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/toggle.jsp
deleted file mode 100644
index 35010bb..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/toggle.jsp
+++ /dev/null
@@ -1,12 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@include file="partialChunkHeader.jsp"%>
-<%
-    response.setContentType("text/javascript");
-%>
-dojo.event.topic.publish("children_<s:property value="category.id"/>");
-var d = document.getElementById("children_<s:property value="category.id"/>");
-if (d.style.display != "none") {
-    d.style.display = "none";
-} else {
-    d.style.display = "";
-}

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/tree.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/tree.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/tree.jsp
deleted file mode 100644
index 81d68d6..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/tree/tree.jsp
+++ /dev/null
@@ -1,13 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<html>
-<head>
-    <title>Tree</title>
-    <sx:head />
-</head>
-
-<body>
-
-<s:action name="getCategory" executeResult="true"/>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/ajax/widgets/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/ajax/widgets/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/ajax/widgets/index.jsp
deleted file mode 100644
index e86efbd..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/ajax/widgets/index.jsp
+++ /dev/null
@@ -1,40 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
-<html>
-<head>
-    <title>Ajax Widgets</title>
-    <jsp:include page="/WEB-INF/ajax/commonInclude.jsp"/>
-</head>
-
-<body>
-
-<br/>
-NOTES:
-<ul>
-    <li>Make sure that there is a 'value' attribute in the textarea with the content for the editor</li>
-    <li>This is experimental</li>
-</ul>
-
-
-Default Editor configuration:<br/>
-<s:form id="form1" action="AjaxRemoteForm" method="post">
-    <sx:textarea name="data" cols="50" rows="10" value="Test Data 1" />
-    <s:submit value="Submit"/>
-</s:form>
-<br/>
-
-Configured Editor configuration:<br/>  
-<s:form id="form2" action="AjaxRemoteForm" method="post">
-    <sx:textarea id="editor2" name="data" cols="50" rows="10" value="Test Data 2">
-        <s:param name="editorControls">textGroup;|;justifyGroup;|;listGroup;|;indentGroup</s:param>
-    </sx:textarea>
-    <s:submit value="Submit"/>
-</s:form>
-<br/>
-
-<s:include value="../footer.jsp"/>
-
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/chatLogin.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/chatLogin.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/chatLogin.ftl
deleted file mode 100644
index 439ea6b..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/chatLogin.ftl
+++ /dev/null
@@ -1,27 +0,0 @@
-<html>
-	<head>
-		<title>Struts2 Showcase - Chat - Login</title>
-		<@s.head />
-	</head>
-	<body>
-	<div class="page-header">
-		<h1>Chat - Login</h1>
-	</div>
-
-	<div class="container-fluid">
-		<div class="row-fluid">
-			<div class="span12">
-			<@s.actionerror cssClass="alert alert-error"/>
-			<@s.actionmessage cssClass="alert alert-info"/>
-			<@s.fielderror  cssClass="alert alert-error"/>
-
-			<@s.form action="login" namespace="/chat" method="POST">
-				<@s.textfield name="name" label="Name" required="true" />
-				<@s.submit cssClass="btn btn-primary"/>
-			</...@s.form>
-			</div>
-		</div>
-	</div>
-	</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/createRoom.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/createRoom.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/createRoom.ftl
deleted file mode 100644
index fbe71cc..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/createRoom.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-<@s.actionerror />
-<@s.fielderror />

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/chat/index.jsp
deleted file mode 100644
index b58d7a3..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/index.jsp
+++ /dev/null
@@ -1,3 +0,0 @@
-
-<% response.sendRedirect("main.action"); %>
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/messagesAvailableInRoom.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/messagesAvailableInRoom.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/messagesAvailableInRoom.ftl
deleted file mode 100644
index 2550dcd..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/messagesAvailableInRoom.ftl
+++ /dev/null
@@ -1,33 +0,0 @@
-
-<table class="table">
-<tr class="tableHeader">
-	<td class="tableSenderColumn">Sender</td>
-	<td class="tableDateColumn">Date</td>
-	<td class="tableMessageColumn">Message</td>
-</tr>
-<@s.iterator id="message" value="%{messagesAvailableInRoom}" status="stat">
-<tr class="tableContent">
-	<#if stat.odd>
-	<td class="tableSenderColumnOdd"> 
-	<#else>
-	<td clas="tableSenderColumnEven">
-	</#if>
-		<@s.property value="%{#message.creator.name}" />
-	</td>
-	<#if stat.odd>
-	<td class="tableDateColumnOdd">
-	<#else>
-	<td class="tableDateColumnEven">
-	</#if>
-		<@s.property value="%{#message.creationDate}" />
-	</td>
-	<#if stat.odd>
-	<td class="tableMessageColumnOdd">
-	<#else>
-	<td class="tableMessageColumnEven">
-	</#if>
-		<@s.property value="%{#message.message}" />
-	</td>
-</tr>
-</...@s.iterator>
-</table>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/roomSelection.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/roomSelection.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/roomSelection.ftl
deleted file mode 100644
index 05eaf17..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/roomSelection.ftl
+++ /dev/null
@@ -1,172 +0,0 @@
-<html>
-<head>
-	<title>Struts2 Showcase - Chat - Room Selection</title>
-<@sx.head />
-	<style type="text/css">
-		div.box {
-			border: 1px solid darkblue;
-			margin: 5px;
-		}
-
-		div.box h3 {
-			color: white;
-			background: darkblue;
-			margin: 3px;
-			padding: 2px;
-		}
-
-		div.nobox {
-			margin: 5px;
-		}
-
-		table.table {
-			border: 1px solid darkblue;
-			width: 98%;
-			margin: 5px;
-		}
-
-		table.table tr.tableHeader {
-			color: white;
-			background: darkblue;
-			margin: 3px;
-			padding: 2px;
-			font-size: medium;
-			font-weight: bold;
-		}
-
-		table.table td.tableOperationColumnOdd {
-			background: gray;
-			color: white;
-			width: 20%
-		}
-
-		table.table td.tableNameColumnOdd {
-			background: gray;
-			color: white;
-			width: 20%;
-		}
-
-		table.table td.tableDescriptionColumnOdd {
-			background: gray;
-			color: white;
-			width: 40%;
-		}
-
-		table.table td.tableDateCreatedColumnOdd {
-			background: gray;
-			color: white;
-			width: 20%;
-		}
-
-		table.table td.tableOperationColumnEven {
-			background: white;
-			color: gray;
-			width: 20%
-		}
-
-		table.table td.tableNameColumnEven {
-			background: white;
-			color: gray;
-			width: 20%;
-		}
-
-		table.table td.tableDescriptionColumnEven {
-			background: white;
-			color: gray;
-			width: 40%;
-		}
-
-		table.table td.tableDateCreatedColumnEven {
-			background: white;
-			color: gray;
-			width: 20%;
-		}
-
-		div.container {
-			margin-left: auto;
-			margin-right: auto;
-			width: 100%;
-		}
-
-		div.left {
-			width: 20%;
-			float: left;
-		}
-
-		div.right {
-			width: 20%;
-			float: right;
-		}
-
-		div.center {
-			width: 60%;
-			float: left;
-		}
-
-	</style>
-</head>
-<body>
-<div class="page-header">
-	<h1>Chat - Room Selection</h1>
-</div>
-
-<div class="container-fluid">
-	<div class="row-fluid">
-		<div class="span12 container">
-
-
-			<div class="left">
-				<div class="box">
-					<h3>Operations</h3>
-				<@s.url id="url" action="logout" namespace="/chat" />
-					<ul>
-						<li><@s.a href="%{#url}">Logout</...@s.a></li>
-					</ul>
-				</div>
-			<#if (actionErrors?size gt 0)>
-				<div class="box">
-					<h3>Action Errors</h3>
-					<@s.actionerrors />
-				</div>
-			</#if>
-				<div class="box">
-					<h3>Users Available In Chat</h3>
-				<@s.url id="usersAvailableUrl" action="usersAvailable" namespace="/chat/ajax" />
-				<@sx.div id="usersAvailable" updateFreq="%{@org.apache.struts2.showcase.chat.Constants@UPDATE_FREQ}"
-				href="%{usersAvailableUrl}"
-				class="box">
-					Initial Loading Users ...
-				</...@sx.div>
-				</div>
-			</div>
-
-
-			<div class="center">
-				<div class="box">
-					<h3>Rooms Available In Chat</h3>
-				<@s.url id="roomsAvailableUrl" action="roomsAvailable" namespace="/chat/ajax" />
-				<@sx.div id="roomsAvailable" listenTopics="topicRoomCreated"
-				updateFreq="%{@org.apache.struts2.showcase.chat.Constants@UPDATE_FREQ}"
-				href="%{roomsAvailableUrl}" >
-					Initial Loading Rooms ...
-				</...@sx.div>
-				</div>
-
-				<div id="createRoom" class="box">
-					<h3>Create Room In Chat</h3>
-
-					<div id="createRoomResult"></div>
-				<@s.form id="createRoomId" action="createRoom" namespace="/chat/ajax" method="POST">
-					<@s.textfield label="Room Name" required="true" name="name" />
-					<@s.textarea theme="xhtml" label="Room Description" required="true" name="Description" />
-					<@sx.submit value="%{'Create Room'}" targets="createRoomResult" afterNotifyTopics="topicRoomCreated" align="left" cssClass="btn btn-primary" />
-				</...@s.form>
-				</div>
-			</div>
-
-		</div>
-	</div>
-</div>
-</body>
-</html>
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/roomsAvailable.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/roomsAvailable.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/roomsAvailable.ftl
deleted file mode 100644
index 1d343c0..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/roomsAvailable.ftl
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<table class="table">
-<tr class="tableHeader">
-	<td>Operation</td>
-	<td>Name</td>
-	<td>Description</td>
-	<td>Date Created</td>
-</tr>
-<@s.iterator id="room" value="%{availableRooms}" status="stat">
-<tr class="tableContent">
-	<#if stat.isOdd()>
-	<td class="tableOperationColumnOdd">
-	<#else>
-	<td class="tableOperationColumnEven">
-	</#if>
-	<@s.url id="url" action="enterRoom" namespace="/chat">
-		<@s.param name="roomName" value="%{#room.name}" />
-	</...@s.url>
-	<@s.a href="%{url}">Enter</...@s.a>
-	</td>
-	<#if stat.odd>
-	<td class="tableNameColumnOdd">
-	<#else>
-	<td class="tableNameColumnEven">
-	</#if>
-	<@s.property value="%{#room.name}" />
-	</td>
-	<#if stat.odd>
-	<td class="tableDescriptionColumnOdd">
-	<#else>
-	<td class="tableDescriptionColumnEven">
-	</#if>
-	<@s.property value="%{#room.description}" />
-	</td>
-	<#if stat.odd>
-	<td class="tableDateCreatedColumnOdd">
-	<#else>
-	<td class="tableDateCreateColumnEven">
-	</#if>
-	<@s.property value="%{#room.creationDate}" />
-	</td>
-</tr>
-</...@s.iterator>
-</table>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/sendMessageToRoomResult.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/sendMessageToRoomResult.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/sendMessageToRoomResult.ftl
deleted file mode 100644
index c75d32b..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/sendMessageToRoomResult.ftl
+++ /dev/null
@@ -1,2 +0,0 @@
-
-<@s.fielderror />

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/showRoom.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/showRoom.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/showRoom.ftl
deleted file mode 100644
index 0a82d48..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/showRoom.ftl
+++ /dev/null
@@ -1,167 +0,0 @@
-<html>
-<head>
-	<title>Struts2 Showcase - Chat - Show Room </title>
-<@sx.head />
-	<style type="text/css">
-		div.box {
-			border: 1px solid darkblue;
-			margin: 5px;
-		}
-
-		div.box h3 {
-			color: white;
-			background: darkblue;
-			margin: 3px;
-			padding: 2px;
-		}
-
-		div.nobox {
-			margin: 5px;
-		}
-
-		table.table {
-			border: 1px solid darkblue;
-			width: 98%;
-			margin: 5px;
-		}
-
-		table.table tr.tableHeader {
-			color: white;
-			background: darkblue;
-			margin: 3px;
-			padding: 2px;
-			font-size: medium;
-			font-weight: bold;
-		}
-
-		table.table td.tableSenderColumnOdd {
-			background: gray;
-			color: white;
-			width: 20%
-		}
-
-		table.table td.tableDateColumnOdd {
-			background: gray;
-			color: white;
-			width: 20%;
-		}
-
-		table.table td.tableMessageColumnOdd {
-			background: gray;
-			color: white;
-			width: 60%;
-		}
-
-		table.table td.tableSenderColumnEven {
-			background: white;
-			color: gray;
-			width: 20%
-		}
-
-		table.table td.tableDateColumnEven {
-			background: white;
-			color: gray;
-			width: 20%;
-		}
-
-		table.table td.tableMessageColumnEven {
-			background: white;
-			color: gray;
-			width: 60%;
-		}
-
-		div.container {
-			margin-left: auto;
-			margin-right: auto;
-			width: 100%;
-		}
-
-		div.left {
-			width: 20%;
-			float: left;
-		}
-
-		div.right {
-			width: 20%;
-			float: left;
-		}
-
-		div.center {
-			width: 60%;
-			float: left;
-		}
-
-	</style>
-</head>
-<body>
-<div class="page-header">
-	<h1>Chat - Show Room</h1>
-</div>
-
-<div class="container-fluid">
-	<div class="row-fluid">
-		<div class="span12 container">
-			<div class="left">
-				<div class="box">
-					<h3>Operation</h3>
-				<@s.url id="url" action="exitRoom" namespace="/chat">
-					<@s.param name="roomName" value="%{roomName}" />
-				</...@s.url>
-					<ul>
-						<li><@s.a href="%{#url}">Exit Room</...@s.a></li>
-					</ul>
-				</div>
-				<div class="box">
-					<h3>Users Available In Chat</h3>
-				<@s.url id="usersAvailableUrl" action="usersAvailable" namespace="/chat/ajax" />
-				<@sx.div id="usersAvailable" href="%{usersAvailableUrl}"
-				updateFreq="%{@org.apache.struts2.showcase.chat.Constants@UPDATE_FREQ}">
-					Initial Users Available ...
-				</...@sx.div>
-				</div>
-			</div>
-
-			<div class="center">
-				<div class="box">
-					<h3>Messages Posted In Room [${roomName?default('')?html}]</h3>
-				<@s.url id="url" value="/chat/ajax/messagesAvailableInRoom.action" includeContext="true">
-					<@s.param name="roomName" value="%{roomName}" />
-				</...@s.url>
-				<@sx.div id="messagesInRoom" href="%{#url}" includeContext="true"
-				updateFreq="%{@org.apache.struts2.showcase.chat.Constants@UPDATE_FREQ}"
-				listenTopics="topicMessageSend">
-					Initial Messages In Room ...
-				</...@sx.div>
-				</div>
-
-				<div class="box">
-					<h3>Send Messages</h3>
-				<@s.form id="sendMessageForm" action="sendMessageToRoom" namespace="/chat/ajax" method="POST">
-					<div id="sendMessageResult"></div>
-					<@s.textarea label="Message"name="message" theme="xhtml" />
-					<@s.hidden name="roomName" value="%{roomName}" />
-					<@sx.submit id="submit" resultDivId="sendMessageResult" afterNotifyTopics="topicMessageSend" value="%{'Send'}"  cssClass="btn btn-primary"/>
-				</...@s.form>
-				</div>
-			</div>
-
-
-			<div class="right">
-				<div class="box">
-					<h3>Users Available In Room [${roomName?default('')?html}]</h3>
-				<@s.url id="url" value="/chat/ajax/usersAvailableInRoom.action" includeContext="true">
-					<@s.param name="roomName" value="%{roomName}" />
-				</...@s.url>
-				<@sx.div id="usersAvailableInRoom" href="%{#url}" includeContext="true"
-				delay="1" updateFreq="%{@org.apache.struts2.showcase.chat.Constants@UPDATE_FREQ}">
-					Initial Users Available In Room ...
-				</...@sx.div>
-				</div>
-			</div>
-
-
-		</div>
-	</div>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailable.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailable.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailable.ftl
deleted file mode 100644
index 1ff2963..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailable.ftl
+++ /dev/null
@@ -1,6 +0,0 @@
-
-<ul>
-<#list availableUsers as user>
-	<li>${user.name?html}</li>
-</#list>
-</ul>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailableInRoom.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailableInRoom.ftl b/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailableInRoom.ftl
deleted file mode 100644
index 95822bf..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/chat/usersAvailableInRoom.ftl
+++ /dev/null
@@ -1,8 +0,0 @@
-
-<ul>
-<@s.iterator id="member" value="%{usersAvailableInRoom}">
-	<li><@s.property value="%{#member.name}" /></li>
-</...@s.iterator>
-</ul>
-
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/decorators.xml
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/decorators.xml b/apps/showcase/src/main/webapp/WEB-INF/decorators.xml
index 31936b9..f6b8bfa 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/decorators.xml
+++ b/apps/showcase/src/main/webapp/WEB-INF/decorators.xml
@@ -7,21 +7,11 @@
         <pattern>/styles/*</pattern>
         <pattern>/scripts/*</pattern>
         <pattern>/images/*</pattern>
-        <pattern>/dojo/*</pattern>
         <pattern>/struts/*</pattern>
-        <pattern>/ajax/AjaxResult*</pattern>
-        <pattern>/AjaxTest.action</pattern>
-        <pattern>/ajax/remoteforms/AjaxRemoteForm.action</pattern>
-        <pattern>/tags/ui/ajax/*</pattern>
-        <pattern>/chat/ajax/*</pattern>
-        <pattern>/hangman/ajax/*</pattern>
         <pattern>/nodecorate/*</pattern>
     </excludes>
 
     <decorator name="main" page="main.jsp">
         <pattern>/*</pattern>
     </decorator>
-    <!--<decorator name="panel" page="panel.jsp"/>-->
-    <!--<decorator name="dashedBox" page="dashedBox.jsp"/>-->
-    <!--<decorator name="printable" page="printable.jsp"/>-->
 </decorators>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
index 1ca02cc..5d1747b 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/decorators/main.jsp
@@ -1,32 +1,32 @@
 <!DOCTYPE html>
 <%@ page
-		language="java"
-		contentType="text/html; charset=UTF-8"
-		pageEncoding="UTF-8" %>
+        language="java"
+        contentType="text/html; charset=UTF-8"
+        pageEncoding="UTF-8" %>
 <%
-	response.setHeader("Pragma", "no-cache");
-	response.setHeader("Cache-Control", "no-cache");
-	response.setDateHeader("Expires", 0);
+    response.setHeader("Pragma", "no-cache");
+    response.setHeader("Cache-Control", "no-cache");
+    response.setDateHeader("Expires", 0);
 
-	// Calculate the view sources url
-	String sourceUrl = request.getContextPath()+"/viewSource.action";
-	com.opensymphony.xwork2.ActionInvocation inv = com.opensymphony.xwork2.ActionContext.getContext().getActionInvocation();
-	org.apache.struts2.dispatcher.mapper.ActionMapping mapping = org.apache.struts2.ServletActionContext.getActionMapping();
-	if (inv != null) {
-		try {
-			com.opensymphony.xwork2.util.location.Location loc = inv.getProxy().getConfig().getLocation();
-			sourceUrl += "?config="+(loc != null ? loc.getURI()+":"+loc.getLineNumber() : "");
-		} catch (Exception e) {
-			sourceUrl += "?config=";
-		}
-		sourceUrl += "&className="+inv.getProxy().getConfig().getClassName();
+    // Calculate the view sources url
+    String sourceUrl = request.getContextPath() + "/viewSource.action";
+    com.opensymphony.xwork2.ActionInvocation inv = com.opensymphony.xwork2.ActionContext.getContext().getActionInvocation();
+    org.apache.struts2.dispatcher.mapper.ActionMapping mapping = org.apache.struts2.ServletActionContext.getActionMapping();
+    if (inv != null) {
+        try {
+            com.opensymphony.xwork2.util.location.Location loc = inv.getProxy().getConfig().getLocation();
+            sourceUrl += "?config=" + (loc != null ? loc.getURI() + ":" + loc.getLineNumber() : "");
+        } catch (Exception e) {
+            sourceUrl += "?config=";
+        }
+        sourceUrl += "&className=" + inv.getProxy().getConfig().getClassName();
 
-		if (inv.getResult() != null && inv.getResult() instanceof org.apache.struts2.dispatcher.StrutsResultSupport) {
-			sourceUrl += "&page="+mapping.getNamespace()+"/"+((org.apache.struts2.dispatcher.StrutsResultSupport)inv.getResult()).getLastFinalLocation();
-		}
-	} else {
-		sourceUrl += "?page="+request.getServletPath();
-	}
+        if (inv.getResult() != null && inv.getResult() instanceof org.apache.struts2.dispatcher.StrutsResultSupport) {
+            sourceUrl += "&page=" + mapping.getNamespace() + "/" + ((org.apache.struts2.dispatcher.StrutsResultSupport) inv.getResult()).getLastFinalLocation();
+        }
+    } else {
+        sourceUrl += "?page=" + request.getServletPath();
+    }
 %>
 <%@taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
 <%@taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %>
@@ -34,238 +34,210 @@
 
 <html lang="en">
 <head>
-	<meta charset="utf-8">
-	<meta name="viewport" content="width=device-width, initial-scale=1.0">
-	<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />
-	<meta name="description" content="Struts2 Showcase for Apache Struts Project">
-	<meta name="author" content="The Apache Software Foundation">
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'/>
+    <meta name="description" content="Struts2 Showcase for Apache Struts Project">
+    <meta name="author" content="The Apache Software Foundation">
 
-	<title><decorator:title default="Struts2 Showcase"/></title>
+    <title><decorator:title default="Struts2 Showcase"/></title>
 
-	<link href="<s:url value='/styles/bootstrap.css' encode='false' includeParams='none'/>" rel="stylesheet"
-	      type="text/css" media="all">
-	<link href="<s:url value='/styles/bootstrap-responsive.css' encode='false' includeParams='none'/>" rel="stylesheet"
-	      type="text/css" media="all">
-	<link href="<s:url value='/styles/main.css' encode='false' includeParams='none'/>" rel="stylesheet" type="text/css"
-	      media="all"/>
+    <link href="<s:url value='/styles/bootstrap.css' encode='false' includeParams='none'/>" rel="stylesheet"
+          type="text/css" media="all">
+    <link href="<s:url value='/styles/bootstrap-responsive.css' encode='false' includeParams='none'/>" rel="stylesheet"
+          type="text/css" media="all">
+    <link href="<s:url value='/styles/main.css' encode='false' includeParams='none'/>" rel="stylesheet" type="text/css"
+          media="all"/>
 
-	<script src="<s:url value='/js/jquery-1.8.2.min.js' encode='false' includeParams='none'/>"></script>
-	<script src="<s:url value='/js/bootstrap.min.js' encode='false' includeParams='none'/>"></script>
-	<script type="text/javascript">
-		$(function () {
-			$('.dropdown-toggle').dropdown();
-			var alerts = $('ul.alert').wrap('<div />');
-			alerts.prepend('<a class="close" data-dismiss="alert" href="#">&times;</a>');
-			alerts.alert();
-		});
-	</script>
+    <script src="<s:url value='/js/jquery-1.8.2.min.js' encode='false' includeParams='none'/>"></script>
+    <script src="<s:url value='/js/bootstrap.min.js' encode='false' includeParams='none'/>"></script>
+    <script type="text/javascript">
+        $(function () {
+            $('.dropdown-toggle').dropdown();
+            var alerts = $('ul.alert').wrap('<div />');
+            alerts.prepend('<a class="close" data-dismiss="alert" href="#">&times;</a>');
+            alerts.alert();
+        });
+    </script>
 
-	<!-- Prettify -->
-	<link href="<s:url value='/styles/prettify.css' encode='false' includeParams='none'/>" rel="stylesheet">
-	<script src="<s:url value='/js/prettify.js' encode='false' includeParams='none'/>"></script>
+    <!-- Prettify -->
+    <link href="<s:url value='/styles/prettify.css' encode='false' includeParams='none'/>" rel="stylesheet">
+    <script src="<s:url value='/js/prettify.js' encode='false' includeParams='none'/>"></script>
 
-	<!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
-	<!--[if lt IE 9]>
-	<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
-	<![endif]-->
+    <!-- Le HTML5 shim, for IE6-8 support of HTML5 elements -->
+    <!--[if lt IE 9]>
+    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
+    <![endif]-->
 
-	<decorator:head/>
+    <decorator:head/>
 </head>
 
 <body id="page-home" onload="prettyPrint();">
 
 <div class="navbar navbar-fixed-top">
-	<div class="navbar-inner">
-		<div class="container-fluid">
-			<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
-				<span class="icon-bar"></span>
-				<span class="icon-bar"></span>
-				<span class="icon-bar"></span>
-			</a>
-			<s:a value="/showcase.jsp" cssClass="brand">Struts2 Showcase</s:a>
-			<div class="nav-collapse">
-				<ul class="nav">
-					<li><s:a value="/showcase.jsp"><i class="icon-home"></i> Home</s:a></li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration<b
-								class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li><s:a action="actionChain1!input" namespace="/actionchaining"
-							         includeParams="none">Action Chaining</s:a></li>
-							<li><s:a action="index" namespace="/config-browser"
-							         includeParams="none">Config Browser</s:a></li>
-							<li><s:a value="/conversion/index.jsp">Conversion</s:a></li>
-							<li><s:a value="/person/index.html">Person Manager ( by Conventions )</s:a></li>
-						</ul>
-					</li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">Tags<b class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li class="dropdown-submenu">
-								<a href="#">Non UI Tags</a>
-								<ul class="dropdown-menu">
-									<li><s:url var="url" action="showActionTagDemo" namespace="/tags/non-ui/actionTag"/><s:a
-											href="%{url}">Action Tag</s:a></li>
-									<li><s:url var="url" namespace="/tags/non-ui" action="date"/><s:a
-											href="%{url}">Date Tag</s:a></li>
-									<li><s:url var="url" action="debugTagDemo" namespace="/tags/non-ui"/><s:a
-											href="%{url}">Debug Tag</s:a></li>
-									<li><s:url var="url" action="showGeneratorTagDemo"
-									           namespace="/tags/non-ui/iteratorGeneratorTag"/><s:a
-											href="%{url}">Iterator Generator Tag</s:a></li>
-									<li>
-										<s:url var="url" action="showAppendTagDemo"
-										       namespace="/tags/non-ui/appendIteratorTag"/>
-										<s:a href="%{#url}">Append Iterator Tag</s:a>
-									<li>
-										<s:url var="url" action="showMergeTagDemo"
-										       namespace="/tags/non-ui/mergeIteratorTag"/>
-										<s:a href="%{#url}">Merge Iterator Demo</s:a>
-									<li>
-										<s:url var="url" action="showSubsetTagDemo"
-										       namespace="/tags/non-ui/subsetIteratorTag"/>
-										<s:a href="%{#url}">Subset Tag</s:a>
-									<li><s:url var="url" action="actionPrefixExampleUsingFreemarker"
-									           namespace="/tags/non-ui/actionPrefix"/><s:a
-											href="%{#url}">Action Prefix Example (Freemarker)</s:a></li>
-									<li><s:url var="url" action="testIfTagJsp" namespace="/tags/non-ui/ifTag"/><s:a
-											href="%{#url}">If Tag (JSP)</s:a></li>
-									<li><s:url var="url" action="testIfTagFreemarker"
-									           namespace="/tags/non-ui/ifTag"/><s:a
-											href="%{#url}">If Tag (Freemarker)</s:a></li>
-								</ul>
+    <div class="navbar-inner">
+        <div class="container-fluid">
+            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+                <span class="icon-bar"></span>
+            </a>
+            <s:a value="/showcase.jsp" cssClass="brand">Struts2 Showcase</s:a>
+            <div class="nav-collapse">
+                <ul class="nav">
+                    <li><s:a value="/showcase.jsp"><i class="icon-home"></i> Home</s:a></li>
+                    <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Configuration<b
+                                class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li><s:a action="actionChain1!input" namespace="/actionchaining"
+                                     includeParams="none">Action Chaining</s:a></li>
+                            <li><s:a action="index" namespace="/config-browser"
+                                     includeParams="none">Config Browser</s:a></li>
+                            <li><s:a value="/conversion/index.jsp">Conversion</s:a></li>
+                            <li><s:a value="/person/index.html">Person Manager ( by Conventions )</s:a></li>
+                        </ul>
+                    </li>
+                    <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Tags<b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li class="dropdown-submenu">
+                                <a href="#">Non UI Tags</a>
+                                <ul class="dropdown-menu">
+                                    <li><s:url var="url" action="showActionTagDemo" namespace="/tags/non-ui/actionTag"/><s:a
+                                            href="%{url}">Action Tag</s:a></li>
+                                    <li><s:url var="url" namespace="/tags/non-ui" action="date"/><s:a
+                                            href="%{url}">Date Tag</s:a></li>
+                                    <li><s:url var="url" action="debugTagDemo" namespace="/tags/non-ui"/><s:a
+                                            href="%{url}">Debug Tag</s:a></li>
+                                    <li><s:url var="url" action="showGeneratorTagDemo"
+                                               namespace="/tags/non-ui/iteratorGeneratorTag"/><s:a
+                                            href="%{url}">Iterator Generator Tag</s:a></li>
+                                    <li>
+                                        <s:url var="url" action="showAppendTagDemo"
+                                               namespace="/tags/non-ui/appendIteratorTag"/>
+                                        <s:a href="%{#url}">Append Iterator Tag</s:a>
+                                    <li>
+                                        <s:url var="url" action="showMergeTagDemo"
+                                               namespace="/tags/non-ui/mergeIteratorTag"/>
+                                        <s:a href="%{#url}">Merge Iterator Demo</s:a>
+                                    <li>
+                                        <s:url var="url" action="showSubsetTagDemo"
+                                               namespace="/tags/non-ui/subsetIteratorTag"/>
+                                        <s:a href="%{#url}">Subset Tag</s:a>
+                                    <li><s:url var="url" action="actionPrefixExampleUsingFreemarker"
+                                               namespace="/tags/non-ui/actionPrefix"/><s:a
+                                            href="%{#url}">Action Prefix Example (Freemarker)</s:a></li>
+                                    <li><s:url var="url" action="testIfTagJsp" namespace="/tags/non-ui/ifTag"/><s:a
+                                            href="%{#url}">If Tag (JSP)</s:a></li>
+                                    <li><s:url var="url" action="testIfTagFreemarker"
+                                               namespace="/tags/non-ui/ifTag"/><s:a
+                                            href="%{#url}">If Tag (Freemarker)</s:a></li>
+                                </ul>
 
-							</li>
-							<li class="dropdown-submenu">
-								<a href="#">UI Tags</a>
-								<ul class="dropdown-menu">
-									<li><s:url var="url" namespace="/tags/ui" action="example" method="input"/><s:a
-											href="%{url}">UI Example</s:a></li>
-									<li><s:url var="url" namespace="/tags/ui" action="exampleVelocity"
-									           method="input"/><s:a href="%{url}">UI Example (Velocity)</s:a></li>
-									<li><s:url var="url" namespace="/tags/ui" action="lotsOfOptiontransferselect"
-									           method="input"/><s:a
-											href="%{url}">Option Transfer Select UI Example</s:a></li>
-									<li><s:url var="url" namespace="/tags/ui" action="moreSelects" method="input"/><s:a
-											href="%{url}">More Select Box UI Examples</s:a></li>
-									<li>
-										<s:url var="url" namespace="/tags/ui" action="treeExampleStatic"/>
-										<s:a href="%{url}">Tree Example (static)</s:a>
-									<li>
-										<s:url var="url" namespace="/tags/ui" action="showDynamicTreeAction"/>
-										<s:a href="%{url}">Tree Example (dynamic)</s:a>
-									<li>
-										<s:url var="url" namespace="/tags/ui" action="showDynamicAjaxTreeAction"/>
-										<s:a href="%{url}">Tree Example (dynamic ajax loading)</s:a>
-									<li>
-										<s:url var="url" namespace="/tags/ui" action="componentTagExample"/>
-										<s:a href="%{#url}">Component Tag Example</s:a>
-									<li><s:url var="url" namespace="/tags/ui" action="actionTagExample" method="input"/><s:a
-											href="%{url}">Action Tag Example</s:a></li>
-									<li><s:url var="url" namespace="/tags/ui" action="datepicker"/><s:a
-											href="%{#url}">DateTime picker tag - Pick a date</s:a></li>
-									<li><s:url var="url" namespace="/tags/ui" action="timepicker"/><s:a
-											href="%{#url}">DateTime picker tag - Pick a time</s:a></li>
-									<%--li><s:url var="url" namespace="/tags/ui" action="populateUsingIterator" method="input" /><s:a href="%{url}">UI population using iterator tag</s:a></li--%>
-								</ul>
-							</li>
-						</ul>
-					</li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">File<b class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li><s:a namespace="/filedownload" action="index">File Download</s:a></li>
-							<li class="dropdown-submenu">
-								<a href="#">File Upload</a>
-								<ul class="dropdown-menu">
-									<li>
-										<s:url var="url" action="upload" namespace="/fileupload"/>
-										<s:a href="%{#url}">Single File Upload</s:a>
-									</li>
-									<li>
-										<s:url var="url" action="multipleUploadUsingList" namespace="/fileupload"/>
-										<s:a href="%{#url}">Multiple File Upload (List)</s:a>
+                            </li>
+                            <li class="dropdown-submenu">
+                                <a href="#">UI Tags</a>
+                                <ul class="dropdown-menu">
+                                    <li><s:url var="url" namespace="/tags/ui" action="example" method="input"/><s:a
+                                            href="%{url}">UI Example</s:a></li>
+                                    <li><s:url var="url" namespace="/tags/ui" action="exampleVelocity"
+                                               method="input"/><s:a href="%{url}">UI Example (Velocity)</s:a></li>
+                                    <li><s:url var="url" namespace="/tags/ui" action="lotsOfOptiontransferselect"
+                                               method="input"/><s:a
+                                            href="%{url}">Option Transfer Select UI Example</s:a></li>
+                                    <li><s:url var="url" namespace="/tags/ui" action="moreSelects" method="input"/><s:a
+                                            href="%{url}">More Select Box UI Examples</s:a></li>
+                                    <li>
+                                        <s:url var="url" namespace="/tags/ui" action="componentTagExample"/>
+                                        <s:a href="%{#url}">Component Tag Example</s:a></li>
+                                    <li><s:url var="url" namespace="/tags/ui" action="actionTagExample" method="input"/><s:a
+                                            href="%{url}">Action Tag Example</s:a></li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">File<b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li><s:a namespace="/filedownload" action="index">File Download</s:a></li>
+                            <li class="dropdown-submenu">
+                                <a href="#">File Upload</a>
+                                <ul class="dropdown-menu">
+                                    <li>
+                                        <s:url var="url" action="upload" namespace="/fileupload"/>
+                                        <s:a href="%{#url}">Single File Upload</s:a>
+                                    </li>
+                                    <li>
+                                        <s:url var="url" action="multipleUploadUsingList" namespace="/fileupload"/>
+                                        <s:a href="%{#url}">Multiple File Upload (List)</s:a>
 
-									</li>
-									<li>
-										<s:url var="url" action="multipleUploadUsingArray" namespace="/fileupload"/>
-										<s:a href="%{#url}">Multiple File Upload (Array)</s:a>
-									</li>
-								</ul>
-							</li>
-						</ul>
-					</li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">Examples<b class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li class="dropdown-submenu">
-								<a href="#">Hangman</a>
-								<ul class="dropdown-menu">
-									<li><s:url var="url" namespace="/hangman" action="hangmanNonAjax"/><s:a
-											href="%{url}">Hangman (Non Ajax)</s:a></li>
-									<li><s:url var="url" namespace="/hangman" action="hangmanAjax"/><s:a
-											href="%{url}">Hangman (Ajax - Experimental)</s:a></li>
-								</ul>
-							</li>
-							<li><s:a value="/person/index.html">Person Manager</s:a></li>
-							<li><s:a value="/skill/index.html">CRUD</s:a></li>
-							<li><s:a value="/wait/index.html">Execute &amp; Wait</s:a></li>
-							<li><s:a value="/token/index.html">Token</s:a></li>
-							<li><s:a value="/validation/index.action">Validation</s:a></li>
-							<li><s:url var="url" namespace="/modelDriven" action="modelDriven"/><s:a
-									href="%{url}">Model Driven</s:a></li>
-						</ul>
-					</li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">Integration<b class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li class="dropdown-submenu">
-								<a href="#">Freemarker</a>
-								<ul class="dropdown-menu">
-									<li>
-										<s:url var="url" action="customFreemarkerManagerDemo" namespace="/freemarker"/>
-										<s:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</s:a>
-									</li>
-									<li>
-										<s:url var="url" action="standardTags" namespace="/freemarker"/>
-										<s:a href="%{#url}">Demo of Standard Struts Freemarker Tags</s:a>
-									</li>
-								</ul>
-							</li>
-							<li><s:a namespace="/jsf" action="index">JavaServer Faces</s:a></li>
-							<li><s:a namespace="/integration" action="editGangster">Struts 1 Integration</s:a></li>
-							<li><s:a value="/tiles/index.action">Tiles</s:a></li>
-						</ul>
-					</li>
-					<li class="dropdown">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown">AJAX<b class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li><s:a value="/ajax/index.html">Ajax plugin</s:a></li>
-							<li><s:a value="/chat/index.html">Ajax Chat</s:a></li>
-						</ul>
-					</li>
-					<li><s:a value="/interactive/index.action">Interactive Demo</s:a></li>
-				</ul>
+                                    </li>
+                                    <li>
+                                        <s:url var="url" action="multipleUploadUsingArray" namespace="/fileupload"/>
+                                        <s:a href="%{#url}">Multiple File Upload (Array)</s:a>
+                                    </li>
+                                </ul>
+                            </li>
+                        </ul>
+                    </li>
+                    <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Examples<b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li class="dropdown-submenu">
+                            <li>
+                                <s:url var="url" namespace="/hangman" action="hangmanNonAjax"/>
+                                <s:a href="%{url}">Hangman</s:a>
+                            </li>
+                            <li><s:a value="/person/index.html">Person Manager</s:a></li>
+                            <li><s:a value="/skill/index.html">CRUD</s:a></li>
+                            <li><s:a value="/wait/index.html">Execute &amp; Wait</s:a></li>
+                            <li><s:a value="/token/index.html">Token</s:a></li>
+                            <li><s:a value="/validation/index.action">Validation</s:a></li>
+                            <li><s:url var="url" namespace="/modelDriven" action="modelDriven"/><s:a
+                                    href="%{url}">Model Driven</s:a></li>
+                        </ul>
+                    </li>
+                    <li class="dropdown">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Integration<b class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li class="dropdown-submenu">
+                                <a href="#">Freemarker</a>
+                                <ul class="dropdown-menu">
+                                    <li>
+                                        <s:url var="url" action="customFreemarkerManagerDemo" namespace="/freemarker"/>
+                                        <s:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</s:a>
+                                    </li>
+                                    <li>
+                                        <s:url var="url" action="standardTags" namespace="/freemarker"/>
+                                        <s:a href="%{#url}">Demo of Standard Struts Freemarker Tags</s:a>
+                                    </li>
+                                </ul>
+                            </li>
+                            <li><s:a value="/tiles/index.action">Tiles</s:a></li>
+                        </ul>
+                    </li>
+                </ul>
 
-				<ul class="nav pull-right">
-					<li class="dropdown last">
-						<a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-flag"></i> Help<b
-								class="caret"></b></a>
-						<ul class="dropdown-menu">
-							<li><s:a value="/help.jsp">Help</s:a></li>
-							<li><a href="http://struts.apache.org/mail.html"><i class="icon-share"></i> User Mailing
-								List</a></li>
-							<li><a href="http://struts.apache.org/2.x/"><i class="icon-share"></i> Struts2 Website</a>
-							</li>
-							<li><a href="http://struts.apache.org/2.x/docs/home.html"><i class="icon-share"></i>
-								Documentation</a></li>
-						</ul>
-					</li>
-				</ul>
-			</div>
-			<!--/.nav-collapse -->
-		</div>
-	</div>
+                <ul class="nav pull-right">
+                    <li class="dropdown last">
+                        <a href="#" class="dropdown-toggle" data-toggle="dropdown"><i class="icon-flag"></i> Help<b
+                                class="caret"></b></a>
+                        <ul class="dropdown-menu">
+                            <li><s:a value="/help.jsp">Help</s:a></li>
+                            <li><a href="http://struts.apache.org/mail.html"><i class="icon-share"></i> User Mailing
+                                List</a></li>
+                            <li><a href="http://struts.apache.org"><i class="icon-share"></i> Struts2 Website</a>
+                            </li>
+                            <li><a href="http://struts.apache.org/docs/home.html"><i class="icon-share"></i>
+                                Documentation</a></li>
+                        </ul>
+                    </li>
+                </ul>
+            </div>
+            <!--/.nav-collapse -->
+        </div>
+    </div>
 </div>
 
 <decorator:body/>
@@ -274,34 +246,34 @@
 <hr>
 
 <footer id="footer" class="footer">
-	<div>
-		<p style="text-align: center;">
-			<a href="<%=sourceUrl %>" class="btn btn-info">View Sources</a>
-		</p>
-	</div>
+    <div>
+        <p style="text-align: center;">
+            <a href="<%=sourceUrl %>" class="btn btn-info">View Sources</a>
+        </p>
+    </div>
 
 
-	<div class="pull-right">
-		<div>
-			<s:action var="dateAction" name="date" namespace="/" executeResult="true"/>
-		</div>
-		<!-- end branding -->
+    <div class="pull-right">
+        <div>
+            <s:action var="dateAction" name="date" namespace="/" executeResult="true"/>
+        </div>
+        <!-- end branding -->
 
-		<div>
-			<a href="http://struts.apache.org/2.x/">
-				<img src="<s:url value='/img/struts-power.gif' encode='false' includeParams='none'/>"
-				     alt="Powered by Struts"/>
-			</a>
-		</div>
-		<!-- end search -->
-	</div>
+        <div>
+            <a href="http://struts.apache.org/2.x/">
+                <img src="<s:url value='/img/struts-power.gif' encode='false' includeParams='none'/>"
+                     alt="Powered by Struts"/>
+            </a>
+        </div>
+        <!-- end search -->
+    </div>
 
-	<div class="pull-left">
-		Copyright &copy; 2003-<s:property value="#dateAction.now.year + 1900"/>
-		<a href="http://www.apache.org">
-			The Apache Software Foundation.
-		</a>
-	</div>
+    <div class="pull-left">
+        Copyright &copy; 2003-<s:property value="#dateAction.now.year + 1900"/>
+        <a href="http://www.apache.org">
+            The Apache Software Foundation.
+        </a>
+    </div>
 </footer>
 </body>
 </html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/empmanager/editEmployee.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/empmanager/editEmployee.jsp b/apps/showcase/src/main/webapp/WEB-INF/empmanager/editEmployee.jsp
index aff2c3e..f11577e 100644
--- a/apps/showcase/src/main/webapp/WEB-INF/empmanager/editEmployee.jsp
+++ b/apps/showcase/src/main/webapp/WEB-INF/empmanager/editEmployee.jsp
@@ -1,5 +1,4 @@
 <%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
 <html>
 <head>
 	<s:if test="currentEmployee!=null">
@@ -35,7 +34,7 @@
 				<s:textfield label="Employee Id" name="currentEmployee.empId"/>
 				<s:textfield label="%{getText('employee.firstName')}" name="currentEmployee.firstName"/>
 				<s:textfield label="%{getText('employee.lastName')}" name="currentEmployee.lastName"/>
-				<sx:datetimepicker label="Birthdate" name="currentEmployee.birthDate"/>
+				<s:textfield type="date" label="Birthdate" name="currentEmployee.birthDate"/>
 				<s:textfield label="Salary" name="currentEmployee.salary" value="%{getText('format.number',{currentEmployee.salary})}" />
 				<s:checkbox fieldValue="true" label="Married" name="currentEmployee.married"/>
 				<s:combobox list="availablePositions" label="Position" name="currentEmployee.position"/>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/hangman/hangmanAjax.ftl
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/hangman/hangmanAjax.ftl b/apps/showcase/src/main/webapp/WEB-INF/hangman/hangmanAjax.ftl
deleted file mode 100644
index e433290..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/hangman/hangmanAjax.ftl
+++ /dev/null
@@ -1,247 +0,0 @@
-<html>
-<head>
-	<title>Struts2 Showcase - Hangman (AJAX)</title>
-<@sx.head />
-</head>
-<body>
-<div class="page-header">
-	<h1>Hangman</h1>
-</div>
-
-<div class="container-fluid">
-	<div class="row-fluid">
-		<div class="span12">
-
-			<script>
-				function destroyWidgets() {
-					var div = dojo.byId("updateCharacterAvailableDiv");
-					var anchors = div.getElementsByTagName("a");
-					dojo.lang.forEach(anchors, function (anchor) {
-						var widget = dojo.widget.byId(anchor);
-						widget.destroy();
-					});
-				}
-
-				var _listeners = {
-					guessMade:function (request, widget) {
-						var sourceId = widget.widgetId;
-						this.guessMadeFunc(sourceId);
-						this.updateCharacterAvailable(sourceId);
-						this.updateVocab(sourceId);
-						this.updateScaffold(sourceId);
-						this.updateGuessLeft(sourceId);
-					},
-					guessMadeFunc:function (sourceId) {
-						var requestAttr = { character:sourceId };
-						dojo.io.bind({
-							url:"<@s.url action="guessCharacter" namespace="/hangman" />",
-							load:function (type, data, event) {
-
-							},
-							mimetype:"text/html",
-							content:requestAttr
-						});
-					},
-					updateCharacterAvailable:function (sourceId) {
-						dojo.io.bind({
-							url:"<@s.url action="updateCharacterAvailable" namespace="/hangman/ajax" />",
-							load:function (type, data, event) {
-								var div = dojo.byId("updateCharacterAvailableDiv");
-								destroyWidgets();
-								div.innerHTML = data;
-
-								try {
-									var xmlParser = new dojo.xml.Parse();
-									var frag = xmlParser.parseElement(div, null, true);
-									dojo.widget.getParser().createComponents(frag);
-									// eval any scripts being returned
-									var scripts = div.getElementsByTagName('script');
-									for (var i = 0; i < scripts.length; i++) {
-										eval(scripts[i].innerHTML);
-									}
-								}
-								catch (e) {
-									alert('dojo error ' + e);
-									dojo.debug("auto-build-widgets error: " + e);
-								}
-							},
-							mimetype:"text/html"
-						});
-					},
-					updateVocab:function (sourceId) {
-						dojo.io.bind({
-							url:"<@s.url action="updateVocabCharacters" namespace="/hangman/ajax" />",
-							load:function (type, data, event) {
-								var div = dojo.byId("updateVocabDiv");
-								div.innerHTML = data;
-
-								try {
-									var xmlParser = new dojo.xml.Parse();
-									var frag = xmlParser.parseElement(div, null, true);
-
-									var scripts = div.getElementsByTagName("script");
-									for (var i = 0; i < scripts.length; i++) {
-										eval(scripts[i].innerHTML);
-									}
-								}
-								catch (e) {
-									alert("dojo error" + e);
-									dojo.debug("auto-build-widgets error: " + e);
-								}
-							},
-							mimetype:"text/html"
-						});
-					},
-					updateScaffold:function (sourceId) {
-						dojo.io.bind({
-							url:"<@s.url action="updateScaffold" namespace="/hangman/ajax" />",
-							load:function (type, data, event) {
-								var div = dojo.byId("updateScaffoldDiv");
-								div.innerHTML = data;
-
-								try {
-									var xmlParser = new dojo.xml.Parse();
-									var frag = xmlParser.parseElement(div, null, true);
-
-									var scripts = div.getElementsByTagName("script");
-									for (var i = 0; i < scripts.length; i++) {
-										eval(scripts[i].innerHTML);
-									}
-								}
-								catch (e) {
-									alert("dojo error" + e);
-									dojo.debug("auto-build-widgets error: " + e);
-								}
-							},
-							mimetype:"text/html"
-						});
-					},
-					updateGuessLeft:function (sourceId) {
-						dojo.io.bind({
-							url:"<@s.url action="updateGuessLeft" namespace="/hangman/ajax" />",
-							load:function (type, data, event) {
-								var div = dojo.byId("updateGuessLeftDiv");
-								div.innerHTML = data;
-
-								try {
-									var xmlParser = new dojo.xml.Parse();
-									var frag = xmlParser.parseElement(div, null, true);
-
-									var scripts = div.getElementsByTagName("script");
-									for (var i = 0; i < scripts.length; i++) {
-										eval(scripts[i].innerHTML);
-									}
-								}
-								catch (e) {
-									alert("dojo error" + e);
-									dojo.debug("auto-build-widgets error: " + e);
-								}
-							},
-							mimetype:"text/html"
-						});
-					}
-				};
-				dojo.event.topic.subscribe("topicGuessMade", _listeners, "guessMade");
-			</script>
-
-			<table bgcolor="green">
-				<tr>
-					<td>
-					<@s.url id="url" value="/hangman/images/hangman.png" />
-						<img alt="Hangman" src="<@s.property value="%{#url}" />"
-						     width="197" height="50" border="0"/>
-					</td>
-					<td width="70" align="right">
-					<#-- Guesses Left -->
-						<div id="updateGuessLeftDiv">
-						<@s.set name="guessLeftImageName" value="%{'Chalkboard_'+hangman.guessLeft()+'.png'}" />
-						<@s.url id="url" value="%{'/hangman/images/'+#guessLeftImageName}" />
-							<img alt="No. Guesses Left"
-							     src="<@s.property value="%{#url}"/>" width="20" height="20" border="0"/>
-						</div>
-					</td>
-					<td>
-					<@s.url id="url" value="/hangman/images/guesses-left.png" />
-						<img alt="Guesses Left"
-						     src="<@s.property value="%{#url}" />" width="164" height="11" border="0"/>
-					</td>
-				</tr>
-				<tr>
-					<td></td>
-					<td align="left">
-					<#-- Display Scaffold -->
-						<div id="updateScaffoldDiv">
-						<@s.set name="scaffoldImageName" value="%{'scaffold_'+hangman.guessLeft()+'.png'}" />
-						<@s.url id="url" value="%{'/hangman/images/'+#scaffoldImageName}" />
-							<img src="<@s.property value="%{#url}" />" border="0"/>
-						</div>
-					</td>
-					<td></td>
-				</tr>
-				<tr>
-					<td width="160">
-						<p align="right">
-						<@s.url id="url" value="/hangman/images/guess.png" />
-							<img alt="Current Guess" src="<@s.property value="%{#url}" />"
-							     align="MIDDLE" width="127" height="20" border="0"/></p>
-					</td>
-					<td>
-					<#-- Display Vacab  -->
-						<div id="updateVocabDiv">
-						<@s.iterator id="currentCharacter" value="%{hangman.vocab.inCharacters()}" stat="stat">
-							<#if hangman.characterGuessedBefore(currentCharacter)>
-								<@s.set name="chalkboardImageName" value="%{'Chalkboard_'+#currentCharacter.toString()+'.png'}" />
-								<@s.url id="url" value="%{'/hangman/images/'+#chalkboardImageName}" />
-								<img height="36" alt="<@s.property value="%{#currentCharacter}" />"
-								     src="<@s.property value="%{#url}" />" width="36" border="0"/>
-							<#else>
-								<@s.url id="url" value="/hangman/images/Chalkboard_underscroll.png" />
-								<img height="36" alt="_"
-								     src="<@s.property value="%{#url}" />" width="36" border="0"/>
-							</#if>
-						</...@s.iterator>
-						</div>
-					</td>
-				</tr>
-				<tr>
-					<td valign="top">
-						<p align="right">
-						<@s.url id="url" value="/hangman/images/choose.png" />
-							<img alt="Choose" src="<@s.property value="%{#url}" />"
-							     height="20" width="151" border="0"/>
-						</p>
-					</td>
-					<td width="330">
-
-					<#-- Show Characters Available -->
-						<div id="updateCharacterAvailableDiv">
-						<@s.iterator id="currentCharacter" value="%{hangman.charactersAvailable}" status="stat">
-							<@s.set name="chalkboardImageName" value="%{'Chalkboard_'+#currentCharacter+'.png'}" />
-							<@s.url id="chalkboardImageUrl" value="%{'/hangman/images/'+#chalkboardImageName}" />
-							<@s.url id="spacerUrl" value="/hangman/images/letter-spacer.png" />
-
-							<@s.url id="blankUrl" value="ajax/blank.action" includeContext="false" />
-							<@sx.a  id="%{#currentCharacter}"
-							beforeNotifyTopics="topicGuessMade"
-							showErrorTransportText="true">
-								<img height="36" alt="" src="<@s.property value="%{#chalkboardImageUrl}" />" width="36" border="0"/>
-							</...@sx.a>
-						</...@s.iterator>
-						</div>
-
-
-					</td>
-				</tr>
-				<tr>
-					<td>
-
-					</td>
-				</tr>
-			</table>
-		</div>
-	</div>
-</div>
-</body>
-</html>
-
-

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/integration/modelDriven.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/integration/modelDriven.jsp b/apps/showcase/src/main/webapp/WEB-INF/integration/modelDriven.jsp
deleted file mode 100644
index dc0b1f4..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/integration/modelDriven.jsp
+++ /dev/null
@@ -1,44 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<html>
-<head>
-	<title>Struts2 Showcase - Struts1 Integration</title>
-	<s:head/>
-</head>
-
-<body>
-
-<div class="page-header">
-	<h1>Struts1 Integration</h1>
-</div>
-
-<div class="container-fluid">
-	<div class="row-fluid">
-		<div class="span12">
-
-
-			<s:form action="saveGangster" namespace="/integration">
-
-				<s:textfield
-						label="Gangster Name"
-						name="name"/>
-				<s:textfield
-						label="Gangster Age"
-						name="age"/>
-				<s:checkbox
-						label="Gangster Busted Before"
-						name="bustedBefore"/>
-				<s:textarea
-						cols="30"
-						rows="5"
-						label="Gangster Description"
-						name="description"/>
-				<s:submit cssClass="btn btn-primary"/>
-
-			</s:form>
-
-
-		</div>
-	</div>
-</div>
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/integration/modelDrivenResult.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/integration/modelDrivenResult.jsp b/apps/showcase/src/main/webapp/WEB-INF/integration/modelDrivenResult.jsp
deleted file mode 100644
index 7d11f4c..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/integration/modelDrivenResult.jsp
+++ /dev/null
@@ -1,43 +0,0 @@
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<html>
-<head>
-	<title>Struts2 Showcase - Struts1 Integration - Result</title>
-	<style type="text/css">
-		.label {
-			background-color: #ffffff;
-			color: #000000;
-			text-shadow: none;
-			font-weight: bold;
-		}
-	</style>
-</head>
-
-<body>
-
-<div class="page-header">
-	<h1>Struts1 Integration - Result</h1>
-</div>
-
-<div class="container-fluid">
-	<div class="row-fluid">
-		<div class="span12">
-
-			<s:actionmessage cssClass="alert alert-info"/>
-			<s:label
-					label="Gangster Name"
-					name="name" /><br/>
-			<s:label
-					label="Gangster Age"
-					name="age" /><br/>
-			<s:label
-					label="Busted Before"
-					name="bustedBefore" /><br/>
-			<s:label
-					label="Gangster Description"
-					name="description" /><br/>
-
-		</div>
-	</div>
-</div>
-</body>
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/interactive/demo.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/interactive/demo.jsp b/apps/showcase/src/main/webapp/WEB-INF/interactive/demo.jsp
deleted file mode 100644
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/interactive/example-action.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/interactive/example-action.jsp b/apps/showcase/src/main/webapp/WEB-INF/interactive/example-action.jsp
deleted file mode 100644
index aaf5ce9..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/interactive/example-action.jsp
+++ /dev/null
@@ -1,76 +0,0 @@
-<%
-    request.setAttribute("decorator", "none");
-    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
-    response.setHeader("Pragma","no-cache"); //HTTP 1.0
-    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
-%>
-<pre style="font-style: normal;">
-<span class="kw">package</span> org.apache.struts2.showcase.action;
-
-<span class="kw">import</span> java.util.Arrays;
-<span class="kw">import</span> java.util.Date;
-<span class="kw">import</span> java.util.HashMap;
-<span class="kw">import</span> java.util.List;
-<span class="kw">import</span> java.util.Map;
-
-<span class="kw">import</span> com.opensymphony.xwork2.ActionSupport;
-
-<span class="kw">public class</span> ExampleAction <span class="kw">extends</span> ActionSupport {
-    <span class="kw">public static final</span> String CONSTANT = "Struts Rocks!";
-        
-    <span class="kw">public static</span> Date getCurrentDate() {
-        return new Date();
-    }
-    
-    <span class="kw">public</span> String getName() {
-        return "John Galt";
-    }
-
-    <span class="kw">public</span> String[] getBands() {
-        return new String[] { "Pink Floyd", "Metallica", "Guns & Roses" };
-    }
-
-    <span class="kw">public</span> List&lt;String&gt; getMovies() {
-        return Arrays.asList("Lord of the Rings", "Matrix");
-    }
-
-    <span class="kw">public</span> Book getBook() {
-        <span class="kw">return</span> new Book("Iliad", "Homer");
-    }
-
-    <span class="kw">public</span> Map&lt;String, Book&gt; getBooks() {
-        Map&lt;String, Book&gt; books = new HashMap&lt;String, Book&gt;();
-        books.put("Iliad", new Book("Iliad", "Homer"));
-        books.put("The Republic", new Book("The Replublic", "Plato"));
-        books.put("Thus Spake Zarathustra", new Book("Thus Spake Zarathustra",
-            "Friedrich Nietzsche"));
-        return books;
-    }
-}
-
-<span class="kw">class</span> Book {
-    <span class="kw">private</span> String title;
-    <span class="kw">private</span> String author;
-
-    <span class="kw">public</span> Book(String title, String author) {
-        this.title = title;
-        this.author = author;
-    }
-
-    <span class="kw">public</span> String getTitle() {
-        <span class="kw">return</span> title;
-    }
-
-    <span class="kw">public void</span> setTitle(String title) {
-        this.title = title;
-    }
-
-    <span class="kw">public</span> String getAuthor() {
-        return author;
-    }
-
-    <span class="kw">public void</span> setAuthor(String author) {
-        this.author = author;
-    }
-}
-</pre>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/interactive/index.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/interactive/index.jsp b/apps/showcase/src/main/webapp/WEB-INF/interactive/index.jsp
deleted file mode 100644
index 987a39a..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/interactive/index.jsp
+++ /dev/null
@@ -1,241 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
-
-<html>
-<head>
-    <title>OGNL and tags demo</title>
-    <s:url var="struts" value="/struts" includeParams="none"/>
-    <s:url var="jspEval" action="jspEval" namespace="/nodecorate" includeParams="none"/>
-    <s:url var="viewClass" value="/interactive/example-action.jsp" includeParams="none"/>
-    <s:url var="ognlBase" value="/interactive/ognl_" includeParams="none"/>
-    <s:url var="jspBase" value="/interactive/jsp_" includeParams="none"/>
-    
-    <script src="${struts}/webconsole.js"></script>
-    <sx:head/>
-    <script>
-        var index = -1;
-        var runningOgnl = true;
-        var ognlBase = "${ognlBase}";
-        var jspBase = "${jspBase}";
-        var ognlCount = 9;
-        var jspCount = 5;
-        
-        dojo.addOnLoad(function() {
-            var classSrc = dojo.byId("classSrc");
-            dojo.io.updateNode(classSrc, "${viewClass}");
-            dojo.html.hide("previous");
-            dojo.html.hide("next");
-        });
-        
-        dojo.event.topic.subscribe("/reloadGuide", function() {
-            next();
-        });
-        
-        function startOgnl() {
-            selectOGNLTab();
-            index = -1;
-            runningOgnl = true;
-            change(1);
-            updateNavigation();
-        }
-        
-        function startJSP() {
-            selectJSPTab();
-            index = -1;
-            runningOgnl = false;
-            change(1);
-            updateNavigation();
-        }
-        
-        function execOgnl(id) {
-            var exp = dojo.string.trim(dojo.byId(id ? id : "example").innerHTML);
-            dojo.byId("wc-command").value = exp;
-            
-            keyEvent({keyCode : 13}, '${jspEval}');
-        }
-        
-        function execJSP(id) {
-            var exp = dojo.string.trim(dojo.byId(id ? id : "example").innerHTML);
-            dojo.byId("jsp").value = unscape(exp);
-            
-            dojo.event.topic.publish("/evalJSP")
-        }
-        
-        function unscape(str) {
-            return str.replace(/&amp;/gm, "&").replace(/&lt;/gm, "<").replace(/&gt;/gm, ">").replace(/&quot;/gm, '"');
-        }
-        
-        function selectClassSrcTab() {
-            dojo.widget.byId("mainTabContainer").selectTab("classTab");
-        }
-        
-        function selectJSPTab() {
-            dojo.widget.byId("mainTabContainer").selectTab("jspTab");
-        }
-        
-        function selectOGNLTab() {
-            dojo.widget.byId("mainTabContainer").selectTab("ognlTab");
-        }
-       
-        function change(delta) {
-            index+=delta;
-            
-            var url = (runningOgnl ? ognlBase : jspBase) + index + ".jsp";
-            var bind = dojo.widget.byId("guideBind");
-            bind.href = url;
-            dojo.event.topic.publish("/loadContent");
-            updateNavigation();
-        }
-        
-        function updateNavigation() {
-            if(index <= 0) {
-                dojo.html.hide("previous");
-            } else {
-                dojo.html.show("previous");
-            }
-            
-            var top = runningOgnl ? ognlCount : jspCount;
-            
-            if(index == top - 1) {
-                dojo.html.hide("next");
-            } else {
-                dojo.html.show("next");
-            }
-        }
-    </script>
-    
-    <style type="">
-        .wc-results {
-            overflow: auto; 
-            margin: 0px; 
-            padding: 5px; 
-            font-family: courier; 
-            color: white; 
-            background-color: black; 
-            height: 200px;
-        }
-        .wc-results pre {
-            display: inline;
-        }
-        .wc-command {
-            margin: 1px 0 0 0; 
-        }
-        .shell {
-            width: 100%;
-        }
-       
-        .jsp {
-            border-style: solid;
-            width: 100%;
-            height: 200px;
-        }
-        .jspResult {
-            border-style: none;
-            width: 100%;
-            height: 200px;
-            padding: 5px;
-        }
-        .jspResultHeader {
-            background-color: #818EBD;
-            color: white;
-            width: 100%;
-            height: 15px;
-        }
-        .jspResultHeader span {
-            padding: 5px;
-        }
-        .classSrc {
-            font-family:Courier;
-            font-size:11px;
-            line-height:13px;
-            overflow: auto; 
-            height: 400px;
-            width: 100%;
-        }
-        .tabContainer {
-            width: 1000px;
-            margin: 0 auto;
-        }
-        .guideContainer {
-            width: 600px;
-            border-width: 1px;
-            border-style: solid;
-            margin: 0 auto;
-        }
-        .guide {
-            padding: 5px;
-        }
-        pre {
-            font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;
-            font-style: italic;
-        }
-        span.kw {
-            color: rgb(127, 0, 85);
-            font-weight: bold;;
-        }
-    </style>
-</head>
-
-<sx:bind id="guideBind" targets="guide" listenTopics="/loadContent"/>
-
-<body>
-    <sx:tabbedpanel id="mainTabContainer" cssClass="tabContainer">
-        <sx:div label="OGNL Console" id="ognlTab">
-            <div id="shell" class="shell">
-               <form onsubmit="return false" id="wc-form">
-                    <div class="wc-results" id="wc-result">
-                         Welcome to the OGNL console!
-                         <br />
-                         :-&gt;
-                    </div>
-                    <input type="hidden" name="debug" value="command" />
-                    OGNL Expression <input name="expression" onkeyup="keyEvent(event, '${jspEval}')" class="input-xxlarge wc-command" id="wc-command" type="text" />
-                </form>
-            </div>
-        </sx:div>
-        <sx:div label="JSP Console" id="jspTab">
-            <table style="width: 100%" cellpadding="1">
-                <tr valign="top">
-                    <td width="50%">
-                       <form theme="simple" namespace="/nodecorate" action="jspEval" method="post">
-                           <s:textarea cssClass="jsp" theme="simple" name="jsp" />
-                           <sx:submit
-                                value="Eval JSP Fragment" 
-                                href="%{#jspEval}" 
-                                targets="jspResult" 
-                                listenTopics="/evalJSP"/>
-                       </form>
-                    </td>
-                    <td width="50%">
-                        <div class="jspResultHeader">
-                            <span>JSP Eval Result</span>
-                        </div>
-                        <div id="jspResult" class="jspResult">
-                        </div>
-                    </td>
-                </tr>
-            </table>    
-        </sx:div>
-        <sx:div label="Class on top of the Value Stack" id="classTab">
-            <div id="classSrc" class="classSrc">
-            </div>
-        </sx:div>
-    </sx:tabbedpanel>
-    <br/><br/>
-    <div class="guideContainer">
-        <div class="jspResultHeader">
-            <span>Interactive Guide</span>
-        </div>
-        <sx:div id="guide" listenTopics="/reloadGuide" cssClass="guide">
-            <p><a href="#" onclick="startOgnl()">Start OGNL Interactive Demo</a></p>
-            <p><a href="#" onclick="startJSP()">Start JSP Interactive Demo</a></p>
-        </sx:div>   
-        <div>
-            <a href="#" id="previous" onclick="change(-1)" style="float: left"><< Previous</a>
-            <a href="#" id="next" onclick="change(1)" style="float: right">Next >></a>
-        </div>
-    </div>
-</body>
-
-</html>

http://git-wip-us.apache.org/repos/asf/struts/blob/ffe0e20e/apps/showcase/src/main/webapp/WEB-INF/interactive/jsp_0.jsp
----------------------------------------------------------------------
diff --git a/apps/showcase/src/main/webapp/WEB-INF/interactive/jsp_0.jsp b/apps/showcase/src/main/webapp/WEB-INF/interactive/jsp_0.jsp
deleted file mode 100644
index b6787d4..0000000
--- a/apps/showcase/src/main/webapp/WEB-INF/interactive/jsp_0.jsp
+++ /dev/null
@@ -1,62 +0,0 @@
-<%
-    request.setAttribute("decorator", "none");
-    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
-    response.setHeader("Pragma","no-cache"); //HTTP 1.0
-    response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
-%>
-<p>
-    <b>String Attributes</b>
-</p>
-<p>
-    Some tag attributes are expected to be Strings in which case String literals
-    can be passed as the value, like the <i>href</i> attribute in the <i>a</i> tag.
-</p>
-<p>
-    <i>
-        &lt;s:a href=&quot;http://struts.apache.org/&quot; /&gt; 
-    </i>
-</p>
-<p>
-   If the value that you want to use in one of these string literal attributes is stored on the Value Stack,
-   then the <i>%{#name}</i> syntax (alternative syntax) needs to be used. Assuming there is a value
-   with the name "url" stored on the stack:
-</p>
-<p>
-    <i>
-        &lt;s:a href=&quot;%{#url}&quot; /&gt;
-    </i>
-</p>
-<p>
-  will create an anchor and use the value of "url" for the <i>href</i> attribute.
-</p>
-<p>
-    <b>Value Attributes</b>
-</p>
-<p>
-    Other attributes expect an object as their value(not an string literal). In these attributes you can specify
-    the name of a variable stored on the Value Stack, and the tag will look it up and use it. Like the
-    <i>value</i> attribute in the <i>property</i> tag. Assuming there is an object stored on the Value Stack with
-    the name "movie", then:
-</p>
-<p>
-    <i>
-        &lt;s:property value=&quot;movie&quot; /&gt;
-    </i>
-</p>
-<p>
-  will print the value to the page. To pass an String literal to an attribute that expects a value use the <i>%{'string'}</i>
-  notation.
-</p>
-<p>
-  If you don't remember if an attribute expects an string literal or a value, you can always use the <i>%{value}</i> notation:
-</p>
-<p>
-    <i>
-        &lt;s:a href=&quot;%{'http://struts.apache.org/'}&quot; /&gt;
-        <br />
-        &lt;s:property value=&quot;%{#movie}&quot; /&gt;
-    </i>
-</p>
-<p>
-    <a href="#" onclick="window.open('http://struts.apache.org/2.x/docs/tag-syntax.html')">[More details]</a>
-</p>
\ No newline at end of file