ww-1367 Update applications and taglib references.

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@424152 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ted Nathan Husted
2006-07-21 01:04:41 +00:00
parent 8351775477
commit 957ad96110
152 changed files with 1927 additions and 1905 deletions
+6 -7
View File
@@ -1,19 +1,18 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://www.jayasoft.fr/org/ivyrep/ivy-doc.xsl"?>
<ivy-module version="1.0">
<info organisation="apache" module="struts-action2"
<info organisation="apache" module="struts2"
revision="2.0"
status="integration"
publication="20060323000000">
<license name="Apache" url="http://www.apache.org/licenses/LICENSE-2.0.txt"/>
<ivyauthor name="apache" url="http://www.apache.org/"/>
<description homepage="http://www.opensymphony.com/webwork/">
WebWork is a Java web-application development framework. It is built specifically with developer
productivity and code simplicity in mind. WebWork is built on
<description homepage="http://struts.apache.org/2.x/">
Struts 2 is a Java web-application development framework. It is built specifically with developer
productivity and code simplicity in mind. Struts 2 is built on
top of XWork, which provides a generic command pattern framework as well as an Inversion of Control
container. In addition to these features, WebWork provides
robust support for building reusable UI templates, such as form controls, UI themes, internationalization,
container. In addition to these features, Struts 2 provides
robust support for building reusable UI templates, such as form controls, UI themes, internationalization,
dynamic form parameter mapping to JavaBeans, robust
client and server side validation, and much more.
@@ -44,7 +43,7 @@
<conf name="tiles"/>
</configurations>
<publications>
<artifact name="struts-action" type="jar" conf="default"/>
<artifact name="struts2" type="jar" conf="default"/>
</publications>
<dependencies>
<!-- build -->
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
+4 -4
View File
@@ -25,12 +25,12 @@
</welcome-file-list>
<!--
This typically isn't required, as the taglib is included in struts-action-2.0.jar.
This typically isn't required, as the taglib is included in struts-core.jar.
If you really need a taglib configuration within web.xml, copy struts/src/java/META-INF/taglib.tld
to the WEB-INF directory as struts-action.tld.
to the WEB-INF directory as tags.tld.
-->
<!--taglib>
<taglib-uri>struts-action</taglib-uri>
<taglib-location>/WEB-INF/struts-action.tld</taglib-location>
<taglib-uri>tags</taglib-uri>
<taglib-location>/WEB-INF/tags.tld</taglib-location>
</taglib-->
</web-app>
+127 -127
View File
@@ -1,8 +1,8 @@
<project name="webwork-webapps" default="help" basedir=".">
<property file="../build.properties" />
<project name="struts2-webapps" default="help" basedir=".">
<property file="../build.properties" />
<target name="help">
<echo>
<target name="help">
<echo>
o To create a new webapp structure, simply run
ant new
@@ -31,38 +31,38 @@
For example:
ant build-portlet -Dcontainer=jboss-portal-2.2
</echo>
</target>
</target>
<path id="cp">
<fileset dir="../lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="..">
<include name="webwork-*.jar" />
</fileset>
<!-- used for allowing WebWork developers to build wars w/o building the whole distribution -->
<path path="../build/java" />
</path>
<path id="cp">
<fileset dir="../lib">
<include name="**/*.jar" />
</fileset>
<fileset dir="..">
<include name="struts2-*.jar" />
</fileset>
<!-- used so that we can build wars w/o building the whole distribution -->
<path path="../build/java" />
</path>
<macrodef name="compile">
<attribute name="srcdir" />
<attribute name="destdir" />
<attribute name="classpath" default="" />
<attribute name="classpathref" default="cp" />
<attribute name="excludes" default="" />
<attribute name="source" default="1.4" />
<attribute name="target" default="1.4" />
<sequential>
<mkdir dir="@{destdir}" />
<javac srcdir="@{srcdir}" destdir="@{destdir}" classpath="@{classpath}" classpathref="@{classpathref}" debug="on" source="@{source}" target="@{target}" />
<copy filtering="no" todir="@{destdir}">
<fileset dir="@{srcdir}">
<exclude name="**/*.java" />
<exclude name="**/package.html" />
</fileset>
</copy>
</sequential>
</macrodef>
<macrodef name="compile">
<attribute name="srcdir" />
<attribute name="destdir" />
<attribute name="classpath" default="" />
<attribute name="classpathref" default="cp" />
<attribute name="excludes" default="" />
<attribute name="source" default="1.4" />
<attribute name="target" default="1.4" />
<sequential>
<mkdir dir="@{destdir}" />
<javac srcdir="@{srcdir}" destdir="@{destdir}" classpath="@{classpath}" classpathref="@{classpathref}" debug="on" source="@{source}" target="@{target}" />
<copy filtering="no" todir="@{destdir}">
<fileset dir="@{srcdir}">
<exclude name="**/*.java" />
<exclude name="**/package.html" />
</fileset>
</copy>
</sequential>
</macrodef>
<target name="build">
@@ -100,16 +100,16 @@
</target>
<target name="buildWithoutWebAppLocation" unless="hasWebAppLocation">
<!-- copy over the webapp -->
<copy todir="${basedir}/tmp">
<fileset dir="${basedir}/${webapp}/src/main/webapp" />
</copy>
<target name="buildWithoutWebAppLocation" unless="hasWebAppLocation">
<!-- copy over the webapp -->
<copy todir="${basedir}/tmp">
<fileset dir="${basedir}/${webapp}/src/main/webapp" />
</copy>
<!-- compile the sources -->
<mkdir dir="${basedir}/tmp/WEB-INF/classes" />
<compile srcdir="${basedir}/${webapp}/src/main/java" destdir="${basedir}/tmp/WEB-INF/classes" />
</target>
<!-- compile the sources -->
<mkdir dir="${basedir}/tmp/WEB-INF/classes" />
<compile srcdir="${basedir}/${webapp}/src/main/java" destdir="${basedir}/tmp/WEB-INF/classes" />
</target>
<target name="buildWithWebAppLocation" if="hasWebAppLocation">
<!-- copy over the webapp -->
@@ -159,8 +159,8 @@
<!-- Copy the Eclipse project file(s) -->
<!--copy file="blank/.classpath" tofile="${new.app.name}/.classpath"/>
<replace file="${new.app.name}/.classpath" value="${basedir}/.." token="@WEBWORK_HOME@"/>
<replace file="${new.app.name}/.classpath" value="${version}" token="@WEBWORK_VERSION@"/>
<replace file="${new.app.name}/.classpath" value="${basedir}/.." token="@STRUTS2_HOME@"/>
<replace file="${new.app.name}/.classpath" value="${version}" token="@STRUTS2_VERSION@"/>
<copy file="blank/.project" tofile="${new.app.name}/.project"/>
<replace file="${new.app.name}/.project" value="${new.app.name}" token="@PROJECT_NAME@"/ -->
@@ -201,96 +201,96 @@
<target name="build-portlet" depends="prepare-portlet,prepare-portlet-deploy" description="Builds the portlet application. You can use the 'container' system property to target a specific container, e.g. '-Dcontainer=exo'. Supported containers are exo, gridsphere, jboss-portal-2.0, jboss-portal-2.2 and jetspeed2">
<!-- war up the app -->
<war file="${basedir}/dist/webwork-portlet.war" webxml="tmp/WEB-INF/web.xml">
<zipfileset dir="tmp" prefix="" />
<!-- war up the app -->
<war file="${basedir}/dist/struts2-portlet.war" webxml="tmp/WEB-INF/web.xml">
<zipfileset dir="tmp" prefix="" />
<!-- only these configurations are needed for now. Also, these are probably more than
needed, but we're just picking a single set of jars that each webapp can use -->
<zipfileset dir="${basedir}/../lib/ajax" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/default" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/cewolf" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/fileupload" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/freemarker" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/sitemesh" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/spring" prefix="WEB-INF/lib" includes="*.jar" excludes="commons-logging.jar" />
<zipfileset dir="${basedir}/../lib/velocity" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/quickstart" prefix="WEB-INF/lib" includes="log4j.jar, commons-lang.jar" />
<zipfileset dir="${basedir}/../lib/jfree" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../build" prefix="WEB-INF/lib" includes="${name}-${version}.jar" />
<zipfileset dir="${basedir}/.." prefix="WEB-INF/lib" includes="${name}-${version}.jar" />
</war>
</target>
<!-- only these configurations are needed for now. Also, these are probably more than
needed, but we're just picking a single set of jars that each webapp can use -->
<zipfileset dir="${basedir}/../lib/ajax" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/default" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/cewolf" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/fileupload" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/freemarker" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/sitemesh" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/spring" prefix="WEB-INF/lib" includes="*.jar" excludes="commons-logging.jar" />
<zipfileset dir="${basedir}/../lib/velocity" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../lib/quickstart" prefix="WEB-INF/lib" includes="log4j.jar, commons-lang.jar" />
<zipfileset dir="${basedir}/../lib/jfree" prefix="WEB-INF/lib" includes="*.jar" />
<zipfileset dir="${basedir}/../build" prefix="WEB-INF/lib" includes="${name}-${version}.jar" />
<zipfileset dir="${basedir}/.." prefix="WEB-INF/lib" includes="${name}-${version}.jar" />
</war>
</target>
<target name="prepare-portlet">
<property name="webapp" value="portlet" />
<!-- prepare -->
<delete dir="${basedir}/tmp" />
<mkdir dir="${basedir}/tmp" />
<mkdir dir="${basedir}/dist" />
<target name="prepare-portlet">
<property name="webapp" value="portlet" />
<!-- prepare -->
<delete dir="${basedir}/tmp" />
<mkdir dir="${basedir}/tmp" />
<mkdir dir="${basedir}/dist" />
<!-- copy over the webapp -->
<copy todir="${basedir}/tmp">
<fileset dir="${basedir}/${webapp}/src/webapp" />
</copy>
<!-- compile the sources -->
<mkdir dir="${basedir}/tmp/WEB-INF/classes" />
<compile srcdir="${basedir}/${webapp}/src/java" destdir="${basedir}/tmp/WEB-INF/classes" />
</target>
<!-- copy over the webapp -->
<copy todir="${basedir}/tmp">
<fileset dir="${basedir}/${webapp}/src/webapp" />
</copy>
<!-- compile the sources -->
<mkdir dir="${basedir}/tmp/WEB-INF/classes" />
<compile srcdir="${basedir}/${webapp}/src/java" destdir="${basedir}/tmp/WEB-INF/classes" />
</target>
<target name="prepare-portlet-deploy" if="container">
<!-- Prepare descriptors and potential extra jars -->
<property name="deploy.src.dir" value="${basedir}/portlet/src/etc" />
<antcall target="prepare-${container}" />
</target>
<target name="prepare-portlet-deploy" if="container">
<!-- Prepare descriptors and potential extra jars -->
<property name="deploy.src.dir" value="${basedir}/portlet/src/etc" />
<antcall target="prepare-${container}" />
</target>
<target name="prepare-exo">
<copy file="${deploy.src.dir}/exo/web.xml" tofile="tmp/WEB-INF/web.xml" overwrite="true" />
</target>
<target name="prepare-exo">
<copy file="${deploy.src.dir}/exo/web.xml" tofile="tmp/WEB-INF/web.xml" overwrite="true" />
</target>
<target name="prepare-jboss-portal-2.2">
<copy todir="tmp/WEB-INF/">
<fileset dir="${deploy.src.dir}/jbossportal2.2">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-jboss-portal-2.2">
<copy todir="tmp/WEB-INF/">
<fileset dir="${deploy.src.dir}/jbossportal2.2">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-jboss-portal-2.0">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/jbossportal2.0">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-jboss-portal-2.0">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/jbossportal2.0">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-jetspeed2">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/jetspeed2">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-jetspeed2">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/jetspeed2">
<include name="*.*" />
</fileset>
</copy>
</target>
<target name="prepare-gridsphere">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/gridsphere">
<include name="*.xml" />
<include name="*.txt" />
</fileset>
</copy>
<copy todir="tmp/WEB-INF/lib/" overwrite="true">
<fileset dir="${deploy.src.dir}/gridsphere">
<include name="*.jar" />
</fileset>
</copy>
</target>
<target name="prepare-gridsphere">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/gridsphere">
<include name="*.xml" />
<include name="*.txt" />
</fileset>
</copy>
<copy todir="tmp/WEB-INF/lib/" overwrite="true">
<fileset dir="${deploy.src.dir}/gridsphere">
<include name="*.jar" />
</fileset>
</copy>
</target>
<target name="prepare-liferay-3.6.1">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/liferay3.6.1">
<include name="*.xml" />
</fileset>
</copy>
</target>
<target name="prepare-liferay-3.6.1">
<copy todir="tmp/WEB-INF/" overwrite="true">
<fileset dir="${deploy.src.dir}/liferay3.6.1">
<include name="*.xml" />
</fileset>
</copy>
</target>
</project>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,4 +1,4 @@
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<hr/>
<p>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
@@ -1,5 +1,5 @@
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-action" prefix="s" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+1 -1
View File
@@ -23,7 +23,7 @@
<distributionManagement>
<site>
<id>apache-site</id>
<url>scp://people.apache.org/www/struts.apache.org/struts-action2/apps</url>
<url>scp://people.apache.org/www/struts.apache.org/struts2/apps</url>
</site>
</distributionManagement>
@@ -1,5 +1,5 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>Hello <saf:property value="firstName"/> <saf:property value="lastName"/></H2>
<H2>Hello <s:property value="firstName"/> <s:property value="lastName"/></H2>
<p/>
<a href="<saf:url action="index"/>">Back to front page</a>
<a href="<s:url action="index"/>">Back to front page</a>
@@ -1,8 +1,8 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>Input your name</H2>
<saf:form action="processFormExampleEdit" method="POST">
<saf:textfield label="First name" name="firstName" value="%{firstName}"/>
<saf:textfield label="Last name" name="lastName" value="%{lastName}"/>
<saf:submit value="Submit the form"/>
</saf:form>
<s:form action="processFormExampleEdit" method="POST">
<s:textfield label="First name" name="firstName" value="%{firstName}"/>
<s:textfield label="Last name" name="lastName" value="%{lastName}"/>
<s:submit value="Submit the form"/>
</s:form>
@@ -1,11 +1,11 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
There are no examples in edit mode yet
<p/>
<a href="<saf:url action="test"/>">Test</a>
<a href="<s:url action="test"/>">Test</a>
<p/>
<a href="<saf:url action="formExampleEdit"/>">Form test</a>
<a href="<s:url action="formExampleEdit"/>">Form test</a>
<p/>
<a href="<saf:url action="/test/testAction" namespace="dummy"/>">Dummy test</a>
<a href="<s:url action="/test/testAction" namespace="dummy"/>">Dummy test</a>
<p/>
<a href="<saf:url action="index" portletMode="view"/>">Back to view mode</a>
<a href="<s:url action="index" portletMode="view"/>">Back to view mode</a>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<a href="<saf:url action="test"/>">Test page for namespace /edit/test</a>
<%@ taglib prefix="s" uri="/tags" %>
<a href="<s:url action="test"/>">Test page for namespace /edit/test</a>
<p/>
<a href="<saf:url action="index"/>">Back to edit index</a>
<a href="<s:url action="index"/>">Back to edit index</a>
@@ -1,7 +1,7 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ taglib prefix="pw" uri="/portletwork" %>
<pw:form action="prefsFormSave.action" method="POST">
<saf:textfield label="Preference one" name="preferenceOne" value="%{preferenceOne}"/>
<saf:textfield label="Preference two" name="preferenceTwo" value="%{preferenceTwo}"/>
<saf:submit value="Save prefs"/>
<s:textfield label="Preference one" name="preferenceOne" value="%{preferenceOne}"/>
<s:textfield label="Preference two" name="preferenceTwo" value="%{preferenceTwo}"/>
<s:submit value="Save prefs"/>
</pw:form>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<a href="<saf:url action="test"/>">Test page</a>
<%@ taglib prefix="s" uri="/tags" %>
<a href="<s:url action="test"/>">Test page</a>
<p/>
<a href="<saf:url action="index"/>">Back to edit index</a>
<a href="<s:url action="index"/>">Back to edit index</a>
@@ -1,40 +1,40 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<saf:head theme="ajax"/>
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/tabs.css"/>">
<%@ taglib prefix="s" uri="/tags" %>
<s:head theme="ajax"/>
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
<b>This is a tabbed pane with two panels that fetches data from a remote action via ajax</b>
<saf:tabbedPanel id="test2" theme="simple" >
<saf:panel id="left" tabName="left" theme="ajax" href="/">
<s:tabbedPanel id="test2" theme="simple" >
<s:panel id="left" tabName="left" theme="ajax" href="/">
This is the left pane<br/>
<saf:form >
<saf:textfield name="tt" label="Test Text" /> <br/>
<saf:textfield name="tt2" label="Test Text2" />
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/view/ajaxData.action" id="ryh1" theme="ajax" tabName="remote one" />
<saf:panel id="middle" tabName="middle" theme="ajax" href="/">
<s:form >
<s:textfield name="tt" label="Test Text" /> <br/>
<s:textfield name="tt2" label="Test Text2" />
</s:form>
</s:panel>
<s:panel remote="true" href="/view/ajaxData.action" id="ryh1" theme="ajax" tabName="remote one" />
<s:panel id="middle" tabName="middle" theme="ajax" href="/">
middle tab<br/>
<saf:form >
<saf:textfield name="tt" label="Test Text44" /> <br/>
<saf:textfield name="tt2" label="Test Text442" />
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/view/ajaxData.action" id="ryh21" theme="ajax" tabName="remote right" />
</saf:tabbedPanel>
<s:form >
<s:textfield name="tt" label="Test Text44" /> <br/>
<s:textfield name="tt2" label="Test Text442" />
</s:form>
</s:panel>
<s:panel remote="true" href="/view/ajaxData.action" id="ryh21" theme="ajax" tabName="remote right" />
</s:tabbedPanel>
<p/>
A DIV that waits for 5 seconds before loading the contents
<saf:div
<s:div
id="once"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/view/ajaxData.action"
delay="5000"
loadingText="loading...">
Waiting for data</saf:div>
Waiting for data</s:div>
<p/>
A DIV that is updated every 2 seconds
<saf:div
<s:div
id="twoseconds"
cssStyle="border: 1px solid yellow;"
href="/view/ajaxData.action"
@@ -43,6 +43,6 @@ A DIV that is updated every 2 seconds
updateFreq="2000"
errorText="There was an error"
loadingText="loading...">Initial Content
</saf:div>
</s:div>
<p/>
<a href="<saf:url action="index"/>">Back to front page</a>
<a href="<s:url action="index"/>">Back to front page</a>
@@ -1,5 +1,5 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>Hello <saf:property value="firstName"/> <saf:property value="lastName"/></H2>
<H2>Hello <s:property value="firstName"/> <s:property value="lastName"/></H2>
<p/>
<a href="<saf:url action="index"/>">Back to front page</a>
<a href="<s:url action="index"/>">Back to front page</a>
@@ -1,8 +1,8 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>Input your name</H2>
<saf:form action="processFormExample" method="POST">
<saf:textfield label="First name" name="firstName" value="%{firstName}"/>
<saf:textfield label="Last name" name="lastName" value="%{lastName}"/>
<saf:submit value="Submit the form"/>
</saf:form>
<s:form action="processFormExample" method="POST">
<s:textfield label="First name" name="firstName" value="%{firstName}"/>
<s:textfield label="Last name" name="lastName" value="%{lastName}"/>
<s:submit value="Submit the form"/>
</s:form>
@@ -1,8 +1,8 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<link rel="stylesheet" type="text/css" href="<saf:url value="/styles/styles.css"/>">
<%@ taglib prefix="s" uri="/tags" %>
<link rel="stylesheet" type="text/css" href="<s:url value="/styles/styles.css"/>">
<H2>Input your name</H2>
<saf:form action="processValidationExample" method="POST">
<saf:textfield label="First name" name="firstName" value="%{firstName}"/>
<saf:textfield label="Last name" name="lastName" value="%{lastName}"/>
<saf:submit value="Submit the form"/>
</saf:form>
<s:form action="processValidationExample" method="POST">
<s:textfield label="First name" name="firstName" value="%{firstName}"/>
<s:textfield label="Last name" name="lastName" value="%{lastName}"/>
<s:submit value="Submit the form"/>
</s:form>
@@ -1,15 +1,15 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>Welcome to the Struts example portlet</H2>
<p/>
Here you'll find examples of what is possible with the PortletWork framework.
<ul>
<li><a href="<saf:url action="formExample"/>">A simple form</a></li>
<li><a href="<saf:url action="validationExample"/>">Validation</a></li>
<li><a href="<saf:url action="tokenExample"/>">Token</a></li>
<li><a href="<saf:url action="springExample"/>">Spring integration</li>
<li><a href="<saf:url action="ajaxExample"/>">Ajax</a></li>
<li><a href="<saf:url action="freeMarkerExample"/>">FreeMarker</a></li>
<li><a href="<saf:url action="velocityHelloWorld"/>">Velocity</a></li>
<li><a href="<saf:url action="index" portletMode="edit"/>">Go to edit mode and see what's there</a></li>
<li><a href="<saf:url action="index" portletMode="help"/>">Go to help mode and see what's there</a></li>
<li><a href="<s:url action="formExample"/>">A simple form</a></li>
<li><a href="<s:url action="validationExample"/>">Validation</a></li>
<li><a href="<s:url action="tokenExample"/>">Token</a></li>
<li><a href="<s:url action="springExample"/>">Spring integration</li>
<li><a href="<s:url action="ajaxExample"/>">Ajax</a></li>
<li><a href="<s:url action="freeMarkerExample"/>">FreeMarker</a></li>
<li><a href="<s:url action="velocityHelloWorld"/>">Velocity</a></li>
<li><a href="<s:url action="index" portletMode="edit"/>">Go to edit mode and see what's there</a></li>
<li><a href="<s:url action="index" portletMode="help"/>">Go to help mode and see what's there</a></li>
</ul>
@@ -1,16 +1,16 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<h3>Example of Spring managed singleton. All the 'things' are contained in a Spring defined ThingManager</h3>
<b>Things in the list:</b>
<p/>
<saf:iterator value="things">
<saf:property /><br/>
</saf:iterator>
<s:iterator value="things">
<s:property /><br/>
</s:iterator>
<p/>
<saf:form action="springExample" method="POST">
<saf:textfield label="Thing to add?" name="thing" value=""/>
<saf:submit value="Add the thing"/>
</saf:form>
<s:form action="springExample" method="POST">
<s:textfield label="Thing to add?" name="thing" value=""/>
<s:submit value="Add the thing"/>
</s:form>
<p/>
<a href="<saf:url action="index"/>">Back to front page</a>
<a href="<s:url action="index"/>">Back to front page</a>
@@ -1,5 +1,5 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<H2>The form was successfully submitted with a valid token</H2>
<a href="<saf:url action="index"/>"/>Back to front page</a>
<a href="<s:url action="index"/>"/>Back to front page</a>
@@ -1,20 +1,20 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<saf:if test="hasErrors()">
<%@ taglib prefix="s" uri="/tags" %>
<s:if test="hasErrors()">
ERROR:<br />
<font color="red">
<saf:iterator value="actionErrors">
<saf:property/><br />
</saf:iterator>
<s:iterator value="actionErrors">
<s:property/><br />
</s:iterator>
</font>
</saf:if>
</s:if>
<H2>Form with invalid token</H2>
<saf:form action="processTokenExample" method="POST">
<saf:textfield label="The value to submit" name="theValue" value=""/>
<saf:submit value="Submit the form"/>
</saf:form>
<s:form action="processTokenExample" method="POST">
<s:textfield label="The value to submit" name="theValue" value=""/>
<s:submit value="Submit the form"/>
</s:form>
<H2>Form with valid token</H2>
<saf:form action="processTokenExample" method="POST">
<saf:token/>
<saf:textfield label="The value to submit" name="theValue" value=""/>
<saf:submit value="Submit the form"/>
</saf:form>
<s:form action="processTokenExample" method="POST">
<s:token/>
<s:textfield label="The value to submit" name="theValue" value=""/>
<s:submit value="Submit the form"/>
</s:form>
@@ -5,23 +5,23 @@
%>
<%@ taglib uri="sitemesh-decorator" prefix="decorator" %>
<%@ taglib uri="sitemesh-page" prefix="page" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><decorator:title default="CSS Template"/></title>
<link href="<saf:url value='/css/main.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<saf:url value='/css/niftyCorners.css'/>" rel="stylesheet" type="text/css"/>
<link href="<saf:url value='/css/niftyPrint.css'/>" rel="stylesheet" type="text/css" media="print"/>
<link href="<saf:url value='/css/dtree.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<saf:url value='/css/cart.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<s:url value='/css/main.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<s:url value='/css/niftyCorners.css'/>" rel="stylesheet" type="text/css"/>
<link href="<s:url value='/css/niftyPrint.css'/>" rel="stylesheet" type="text/css" media="print"/>
<link href="<s:url value='/css/dtree.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<s:url value='/css/cart.css'/>" rel="stylesheet" type="text/css" media="all"/>
<script language="JavaScript" type="text/javascript" src="<saf:url value='/js/nifty.js'/>"></script>
<script language="JavaScript" type="text/javascript" src="<saf:url value='/js/dtree.js'/>"></script>
<script language="JavaScript" type="text/javascript" src="<s:url value='/js/nifty.js'/>"></script>
<script language="JavaScript" type="text/javascript" src="<s:url value='/js/dtree.js'/>"></script>
<saf:head theme="ajax"/>
<s:head theme="ajax"/>
<script language="JavaScript" type="text/javascript">
@@ -70,7 +70,7 @@
<div id="local">
<saf:action namespace="/catalog" name="catalog" executeResult="false" id="catalog"/>
<s:action namespace="/catalog" name="catalog" executeResult="false" id="catalog"/>
<div id="categories">
<p class="boxTitle">Categories</p>
@@ -83,7 +83,7 @@
var categoryTopic = dojo.event.topic.getTopic("categorySelected");
function changeCategory(category) {
var serverUrl = "<saf:url value="/catalog/remote/setActiveCategory.action"/>?categoryId=" + category;
var serverUrl = "<s:url value="/catalog/remote/setActiveCategory.action"/>?categoryId=" + category;
// dojo.debug("Url: " + serverUrl);
dojo.io.bind({
url: serverUrl,
@@ -100,9 +100,9 @@
categoryTree = new dTree('categoryTree');
categoryTree.add(0,-1,'Categories');
<saf:iterator value="#catalog.catalog.findAllCategories()">
categoryTree.add(<saf:property value="id"/>,<saf:property value="(parent eq null) ? 0 : parent.id"/>,'<saf:property value="name"/>','javascript: changeCategory(<saf:property value="id"/>);');
</saf:iterator>
<s:iterator value="#catalog.catalog.findAllCategories()">
categoryTree.add(<s:property value="id"/>,<s:property value="(parent eq null) ? 0 : parent.id"/>,'<s:property value="name"/>','javascript: changeCategory(<s:property value="id"/>);');
</s:iterator>
document.write(categoryTree);
//-->
</script>
@@ -110,7 +110,7 @@
</div>
<div id="cart">
<saf:div href="/catalog/remote/cart.action" theme="ajax" listenTopics="cartUpdated"
<s:div href="/catalog/remote/cart.action" theme="ajax" listenTopics="cartUpdated"
loadingText="loading..." id="cart-body" />
</div>
<br clear="all"/>
+3 -3
View File
@@ -3,11 +3,11 @@
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<p class="boxTitle">Shopping Cart</p>
<div id="cartTable">
<div><span class="cartLabel">Number of Items:</span><span class="cartValue"><saf:property value="numCartItems"/></span></div>
<div><span class="cartLabel">Total:</span><span class="cartValue"> $<saf:property value="cartTotal" /></span></div>
<div><span class="cartLabel">Number of Items:</span><span class="cartValue"><s:property value="numCartItems"/></span></div>
<div><span class="cartLabel">Total:</span><span class="cartValue"> $<s:property value="cartTotal" /></span></div>
</div>
@@ -3,7 +3,7 @@
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>Category</title>
@@ -11,7 +11,7 @@
</head>
<body id="page-home">
<%--<saf:action name="activeCategory" namespace="/catalog/remote" executeResult="true" />--%>
<saf:div id="main" href="/catalog/remote/activeCategory.action" theme="ajax" listenTopics="categorySelected" loadingText="loading..." />
<%--<s:action name="activeCategory" namespace="/catalog/remote" executeResult="true" />--%>
<s:div id="main" href="/catalog/remote/activeCategory.action" theme="ajax" listenTopics="categorySelected" loadingText="loading..." />
</body>
</html>
+21 -21
View File
@@ -3,46 +3,46 @@
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<saf:if test="category != null">
<h3><saf:if test="category.parent != null"><saf:property value="category.parent.name"/> &gt; </saf:if><saf:property value="category.name"/></h3>
<s:if test="category != null">
<h3><s:if test="category.parent != null"><s:property value="category.parent.name"/> &gt; </s:if><s:property value="category.name"/></h3>
<saf:set name="categoryProducts" value="%{catalog.findProductsByCategory(category)}"/>
<saf:if test="(#categoryProducts != null) && (#categoryProducts.size > 0)">
<s:set name="categoryProducts" value="%{catalog.findProductsByCategory(category)}"/>
<s:if test="(#categoryProducts != null) && (#categoryProducts.size > 0)">
<div>
<saf:iterator value="#categoryProducts">
<saf:form id="qtyForm_%{id}" name="qtyForm_%{id}" namespace="/catalog/remote" action="updateQuantity" method="POST" theme="ajax" validate="true">
<saf:hidden name="productId" value="%{id}"/>
<s:iterator value="#categoryProducts">
<s:form id="qtyForm_%{id}" name="qtyForm_%{id}" namespace="/catalog/remote" action="updateQuantity" method="POST" theme="ajax" validate="true">
<s:hidden name="productId" value="%{id}"/>
<div class="product">
<div class="productDetails">
<div class="productHeader">
<tr>
<td><div class="productName"><saf:property value="name"/></div></td>
<td><div class="productPrice">$<saf:property value="price" /></div></td>
<td><div class="productName"><s:property value="name"/></div></td>
<td><div class="productPrice">$<s:property value="price" /></div></td>
</tr>
</div>
<tr><td colspan="2">
<div class="productDescription"><saf:property value="description"/></div>
<div class="productDescription"><s:property value="description"/></div>
</td></tr>
</div>
<tr><td colspan="2">
<p class="productQuantity">
Quantity:&nbsp;<saf:textfield id="quantity" name="quantity" theme="simple" size="2" value="0"/>
<saf:submit id="qtySubmit" name="qtySubmit" value="Update" theme="ajax" notifyTopics="cartUpdated" onLoadJS="document.qtyForm_%{id}.reset();" />
Quantity:&nbsp;<s:textfield id="quantity" name="quantity" theme="simple" size="2" value="0"/>
<s:submit id="qtySubmit" name="qtySubmit" value="Update" theme="ajax" notifyTopics="cartUpdated" onLoadJS="document.qtyForm_%{id}.reset();" />
</p>
</td></tr>
</div>
</saf:form>
</saf:iterator>
</s:form>
</s:iterator>
</div>
</saf:if>
<saf:else>
</s:if>
<s:else>
<b>There are no products in this category</b>
</saf:else>
</saf:if>
<saf:else>
</s:else>
</s:if>
<s:else>
<h2>Struts Ajax Catalog</h2>
<p>Please choose a category to start shopping.</p>
</saf:else>
</s:else>
@@ -3,6 +3,6 @@
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
%>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/plain;charset=UTF-8" language="java" %>
Category set to <saf:property value="categoryId"/>
Category set to <s:property value="categoryId"/>
@@ -31,7 +31,7 @@ import java.io.InputStream;
public class FileDownloadAction implements Action {
public InputStream getImageStream() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream("/images/logo.png");
return ServletActionContext.getServletContext().getResourceAsStream("/images/struts.gif");
}
public String execute() throws Exception {
@@ -7,6 +7,6 @@ struts.custom.i18n.resources=globalMessages
#struts.action.extension=jspa
struts.url.http.port = 8080
struts.freemarker.manager.classname=customFreemarkerManager
struts.serve.static=true
struts.serve.static.browserCache=false
struts.compatibilityMode = true
@@ -13,9 +13,9 @@
<!-- Showcase's CustomFreemarkerManager example -->
<bean id="customFreemarkerManager" class="org.apache.struts2.showcase.freemarker.CustomFreemarkerManager">
<constructor-arg index="0">
<ref bean="customFreemarkerManagerUtil" />
</constructor-arg>
<constructor-arg index="0">
<ref bean="customFreemarkerManagerUtil" />
</constructor-arg>
</bean>
<bean id="customFreemarkerManagerUtil" class="org.apache.struts2.showcase.freemarker.CustomFreemarkerManagerUtil" />
@@ -26,63 +26,63 @@
</bean>
<bean id="chatLoginAction" class="org.apache.struts2.showcase.chat.ChatLoginAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="chatLogoutAction" class="org.apache.struts2.showcase.chat.ChatLogoutAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="usersAvailableAction" class="org.apache.struts2.showcase.chat.UsersAvailableAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="roomsAvailableAction" class="org.apache.struts2.showcase.chat.RoomsAvailableAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="crudRoomAction" class="org.apache.struts2.showcase.chat.CrudRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="enterRoomAction" class="org.apache.struts2.showcase.chat.EnterRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="messagesAvailableInRoomAction" class="org.apache.struts2.showcase.chat.MessagesAvailableInRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="sendMessageToRoomAction" class="org.apache.struts2.showcase.chat.SendMessageToRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="usersAvailableInRoomAction" class="org.apache.struts2.showcase.chat.UsersAvailableInRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
<bean id="exitRoomAction" class="org.apache.struts2.showcase.chat.ExitRoomAction" singleton="false">
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
<constructor-arg index="0">
<ref local="chatService" />
</constructor-arg>
</bean>
@@ -96,9 +96,9 @@
<prop key="DOG">An animal, men best friend</prop>
<prop key="CAT">An animal whose child is called kitten</prop>
<prop key="CAR">A common vehical with 4 wheels</prop>
<prop key="WEBWORK">One of the best action based framework from Opensymphony</prop>
<prop key="STRUTS2">The premier action-based framework for Java</prop>
-->
<prop key="JAVA">A popular programming language from which WebWork is written off</prop>
<prop key="JAVA">A popular programming language that is used to create the Struts framework</prop>
</props>
</constructor-arg>
</bean>
@@ -9,16 +9,16 @@
<%@ taglib uri="sitemesh-decorator" prefix="decorator" %>
<%@ taglib uri="sitemesh-page" prefix="page" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title><decorator:title default="Struts Showcase"/></title>
<link href="<saf:url value='/styles/main.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<saf:url value='/struts/niftycorners/niftyCorners.css'/>" rel="stylesheet" type="text/css"/>
<link href="<saf:url value='/struts/niftycorners/niftyPrint.css'/>" rel="stylesheet" type="text/css" media="print"/>
<link href="<s:url value='/styles/main.css'/>" rel="stylesheet" type="text/css" media="all"/>
<link href="<s:url value='/struts/niftycorners/niftyCorners.css'/>" rel="stylesheet" type="text/css"/>
<link href="<s:url value='/struts/niftycorners/niftyPrint.css'/>" rel="stylesheet" type="text/css" media="print"/>
<script language="JavaScript" type="text/javascript" src="<saf:url value='/struts/niftycorners/nifty.js'/>"></script>
<script language="JavaScript" type="text/javascript" src="<s:url value='/struts/niftycorners/nifty.js'/>"></script>
<script language="JavaScript" type="text/javascript">
@@ -43,11 +43,11 @@
<div id="header" class="clearfix">
<div id="branding">
<h1 class="title">Struts Showcase</h1>
<saf:action id="dateAction" name="date" namespace="/" executeResult="true" />
<s:action id="dateAction" name="date" namespace="/" executeResult="true" />
</div><!-- end branding -->
<div id="search">
<img src="<saf:url value='/images/logo-small.png'/>" alt="Struts logo"/>
<img src="<s:url value='/images/struts-power.gif'/>" alt="Powered by Struts"/>
</div><!-- end search -->
<hr/>
@@ -62,25 +62,25 @@
<div class="wrapper">
<h2 class="accessibility">Navigation</h2>
<ul class="clearfix">
<li><strong><a href="<saf:url action="showcase" namespace="/" includeParams="none" />">Home</a></strong></li>
<li><a href="<saf:url action="index" namespace="/config-browser" includeParams="none" />">Config Browser</a></li>
<li><a href="<saf:url action="guess" namespace="/continuations" />">Continuations</a></li>
<li><a href="<saf:url value="/tags/index.jsp"/>">Tags</a></li>
<li><a href="<saf:url action="upload" namespace="/fileupload" includeParams="none"/>">File Upload</a></li>
<li><a href="<saf:url value="/empmanager/index.jsp"/>">CRUD</a></li>
<li><a href="<saf:url value="/person/index.jsp"/>">Person Manager</a></li>
<li><a href="<saf:url value="/validation/index.jsp"/>">Validation</a></li>
<li><a href="<saf:url value="/ajax/index.jsp"/>">AJAX</a></li>
<li><a href="<saf:url action="actionChain1!input" namespace="/actionchaining" includeParams="none" />">Action Chaining</a></li>
<li><a href="<saf:url value="/wait/index.jsp"/>">Execute & Wait</a></li>
<li><a href="<saf:url value="/token/index.jsp"/>">Token</a></li>
<li><a href="<saf:url value="/filedownload/index.jsp"/>">File Download</a></li>
<li><a href="<saf:url value="/conversion/index.jsp"/>"/>Conversion</a></li>
<li><a href="<saf:url value="/jsf/index.jsp"/>">JSF</a></li>
<li><a href="<saf:url value="/freemarker/index.jsp"/>">Freemarker</a>
<li><a href="<saf:url value="/chat/index.jsp"/>">Chat (AJAX)</a>
<li><a href="<saf:url action="hangmanMenu" namespace="/hangman"/>">Hangman</a></li>
<li class="last"><a href="<saf:url value="/help.jsp"/>">Help</a></li>
<li><strong><a href="<s:url action="showcase" namespace="/" includeParams="none" />">Home</a></strong></li>
<li><a href="<s:url action="index" namespace="/config-browser" includeParams="none" />">Config Browser</a></li>
<li><a href="<s:url action="guess" namespace="/continuations" />">Continuations</a></li>
<li><a href="<s:url value="/tags/index.jsp"/>">Tags</a></li>
<li><a href="<s:url action="upload" namespace="/fileupload" includeParams="none"/>">File Upload</a></li>
<li><a href="<s:url value="/empmanager/index.jsp"/>">CRUD</a></li>
<li><a href="<s:url value="/person/index.jsp"/>">Person Manager</a></li>
<li><a href="<s:url value="/validation/index.jsp"/>">Validation</a></li>
<li><a href="<s:url value="/ajax/index.jsp"/>">AJAX</a></li>
<li><a href="<s:url action="actionChain1!input" namespace="/actionchaining" includeParams="none" />">Action Chaining</a></li>
<li><a href="<s:url value="/wait/index.jsp"/>">Execute & Wait</a></li>
<li><a href="<s:url value="/token/index.jsp"/>">Token</a></li>
<li><a href="<s:url value="/filedownload/index.jsp"/>">File Download</a></li>
<li><a href="<s:url value="/conversion/index.jsp"/>"/>Conversion</a></li>
<li><a href="<s:url value="/jsf/index.jsp"/>">JSF</a></li>
<li><a href="<s:url value="/freemarker/index.jsp"/>">Freemarker</a>
<li><a href="<s:url value="/chat/index.jsp"/>">Chat (AJAX)</a>
<li><a href="<s:url action="hangmanMenu" namespace="/hangman"/>">Hangman</a></li>
<li class="last"><a href="<s:url value="/help.jsp"/>">Help</a></li>
</ul>
</div>
<hr/>
@@ -91,7 +91,7 @@
<div id="footer" class="clearfix">
<p>Copyright &copy; 2003-<saf:property value="#dateAction.now.year + 1900" /> The Apache Software Foundation.</p>
<p>Copyright &copy; 2003-<s:property value="#dateAction.now.year + 1900" /> The Apache Software Foundation.</p>
</div><!-- end footer -->
<p/>
@@ -1,14 +1,14 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Action Chaining Result</title>
<title>Showcase - Action Chaining Result</title>
</head>
<body>
<h1>Action Chaining Result:</h1>
<saf:label label="Action Chain 1 Property 1" name="actionChain1Property1" /><br/>
<saf:label label="Action Chain 2 Property 1" name="actionChain2Property1" /><br/>
<saf:label label="Action Chain 3 Property 1" name="actionChain3Property1" /><br/>
<h1>Action Chaining Result:</h1>
<s:label label="Action Chain 1 Property 1" name="actionChain1Property1" /><br/>
<s:label label="Action Chain 2 Property 1" name="actionChain2Property1" /><br/>
<s:label label="Action Chain 3 Property 1" name="actionChain3Property1" /><br/>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%
request.setAttribute("decorator", "none");
@@ -7,4 +7,4 @@
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
Result: <saf:property value="count"/> @ <saf:property value="serverTime"/>
Result: <s:property value="count"/> @ <s:property value="serverTime"/>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%
request.setAttribute("decorator", "none");
@@ -7,6 +7,6 @@
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
Result: <saf:property value="count"/> @ <saf:property value="serverTime"/>
Result: <s:property value="count"/> @ <s:property value="serverTime"/>
The value you entered was: <saf:property value="data"/><br/>
The value you entered was: <s:property value="data"/><br/>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<!--// START SNIPPET: common-include-->
<saf:head theme="ajax"/>
<s:head theme="ajax"/>
<!--// END SNIPPET: common-include-->
@@ -1,9 +1,9 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<hr/>
<saf:url id="backToAjaxExamples" value=".." />
<saf:url id="backToShowCase" action="showcase" namespace="/" />
<s:url id="backToAjaxExamples" value=".." />
<s:url id="backToShowCase" action="showcase" namespace="/" />
<saf:a href="%{backToAjaxExamples}">Back To AJAX Examples</saf:a>&nbsp;
<saf:a href="%{backToShowCase}">Back To Showcase</saf:a>
<s:a href="%{backToAjaxExamples}">Back To AJAX Examples</s:a>&nbsp;
<s:a href="%{backToShowCase}">Back To Showcase</s:a>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,16 +9,16 @@
<body>
<saf:div
<s:div
id="once"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
delay="5000"
loadingText="loading...">
Initial Content</saf:div>
Initial Content</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,7 +8,7 @@
</head>
<body>
<saf:div
<s:div
id="twoseconds"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
@@ -16,9 +16,9 @@
updateFreq="2000"
errorText="There was an error"
loadingText="loading...">Initial Content
</saf:div>
</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,16 +9,16 @@
<body>
<saf:div
<s:div
id="twoseconds"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
theme="ajax"
delay="2000"
updateFreq="%{#parameters.period}"
errorText="There was an error">Initial Content</saf:div>
errorText="There was an error">Initial Content</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,7 +9,7 @@
<body>
<saf:div
<s:div
id="fiveseconds"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
@@ -17,9 +17,9 @@
delay="1000"
updateFreq="5000"
errorText="There was an error"
loadingText="reloading">loading now</saf:div>
loadingText="reloading">loading now</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,16 +9,16 @@
<body>
<saf:div
<s:div
id="error"
cssStyle="border: 1px solid yellow;"
href="/AjaxNoUrl.jsp"
theme="ajax"
delay="1000"
errorText="Could not contact server"
loadingText="reloading">loading now</saf:div>
loadingText="reloading">loading now</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,16 +9,16 @@
<body>
<saf:div
<s:div
id="error"
cssStyle="border: 1px solid yellow;"
href="/AjaxNoUrl.jsp"
theme="ajax"
delay="1000"
showErrorTransportText="true"
loadingText="reloading">loading now</saf:div>
loadingText="reloading">loading now</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -9,16 +9,16 @@
<body>
<saf:div
<s:div
id="error"
cssStyle="border: 1px solid yellow;"
href="/Test3.action"
theme="ajax"
delay="1000"
showErrorTransportText="true"
loadingText="reloading">loading now</saf:div>
loadingText="reloading">loading now</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,6 +1,6 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -10,16 +10,16 @@
<body>
<saf:div
<s:div
id="once"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
updateFreq="0"
delay="0">
Initial Content ... should not change</saf:div>
Initial Content ... should not change</s:div>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>AJAX-based remote DIV tag</title>
@@ -42,7 +42,7 @@
</li>
<li>
<a href="example8.jsp">A div that will not update itself (updateFreq=0 and delay=0)</a>
<a href="example8.jsp">A div that will not update itself (updateFreq=0 and delay=0)</a>
</li>
</ol>
@@ -50,7 +50,7 @@
</p>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -21,7 +21,7 @@
Remote form replacing another div:<br/>
<div id='two' style="border: 1px solid yellow;"><b>initial content</b></div>
<saf:form
<s:form
id='theForm2'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -30,13 +30,13 @@ Remote form replacing another div:<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="GO2" theme="ajax" resultDivId="two"/>
<s:submit value="GO2" theme="ajax" resultDivId="two"/>
</saf:form>
</s:form>
Remote form replacing the forms content:<br/>
<saf:form
<s:form
id='theForm3'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -45,12 +45,12 @@ Remote form replacing the forms content:<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="GO3" theme="ajax" resultDivId="theForm3"/>
<s:submit value="GO3" theme="ajax" resultDivId="theForm3"/>
</saf:form>
</s:form>
Remote form evaluating suplied JS on completion:<br/>
<saf:form
<s:form
id='theForm4'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -59,12 +59,12 @@ Remote form evaluating suplied JS on completion:<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="GO4" theme="ajax" onLoadJS="alert('form submitted');"/>
<s:submit value="GO4" theme="ajax" onLoadJS="alert('form submitted');"/>
</saf:form>
</s:form>
Remote form replacing the forms content after confirming results:<br/>
<saf:form
<s:form
id='theForm5'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -73,12 +73,12 @@ Remote form replacing the forms content after confirming results:<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="GO3" theme="ajax" resultDivId="theForm5" preInvokeJS="confirm('sure?');"/>
<s:submit value="GO3" theme="ajax" resultDivId="theForm5" preInvokeJS="confirm('sure?');"/>
</saf:form>
</s:form>
Remote form replacing the forms content after running a function:<br/>
<saf:form
<s:form
id='theForm6'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -87,12 +87,12 @@ Remote form replacing the forms content after running a function:<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="GO3" theme="ajax" resultDivId="theForm6" preInvokeJS="doSomething();"/>
<s:submit value="GO3" theme="ajax" resultDivId="theForm6" preInvokeJS="doSomething();"/>
</saf:form>
</s:form>
A form with no remote submit (so should not be ajaxified):<br/>
<saf:form
<s:form
id='theForm7'
cssStyle="border: 1px solid green;"
action='AjaxRemoteForm'
@@ -101,11 +101,11 @@ A form with no remote submit (so should not be ajaxified):<br/>
<input type='text' name='data' value='Struts User'>
<saf:submit value="Go AWAY" resultDivId="theForm7" />
<s:submit value="Go AWAY" resultDivId="theForm7" />
</saf:form>
</s:form>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,18 +1,18 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<saf:head theme="ajax"/>
<s:head theme="ajax"/>
</head>
<body>
<saf:form name="test1" id="test1" action="/ajax/Test1.action" theme="ajax">
<s:form name="test1" id="test1" action="/ajax/Test1.action" theme="ajax">
Test 1 Form
<saf:submit theme="ajax" resultDivId="result2"/>
</saf:form>
<s:submit theme="ajax" resultDivId="result2"/>
</s:form>
<saf:div id="result2" theme="ajax" >test2 - before</saf:div>
<s:div id="result2" theme="ajax" >test2 - before</s:div>
<saf:div id="result3" theme="ajax">test3 - before</saf:div>
<s:div id="result3" theme="ajax">test3 - before</s:div>
</body>
</html>
@@ -1,6 +1,6 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<saf:form name="test2" id="test2" action="/ajax/Test2.action" theme="ajax">
<s:form name="test2" id="test2" action="/ajax/Test2.action" theme="ajax">
Test 2 form
<saf:submit theme="ajax" resultDivId="result3"/>
</saf:form>
<s:submit theme="ajax" resultDivId="result3"/>
</s:form>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -10,103 +10,103 @@
<body>
One Component:
<saf:div
<s:div
id="one"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
theme="ajax"
listenTopics="mylink1_click"
delay="1000">Initial Content</saf:div>
delay="1000">Initial Content</s:div>
<br/><br/>
Two Component:
<saf:div
<s:div
id="two"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
theme="ajax"
listenTopics="mylink1_click,mylink2_click"
delay="1000">Initial Content</saf:div>
delay="1000">Initial Content</s:div>
<br/><br/>
Three Component:
<saf:div
<s:div
id="three"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
theme="ajax"
listenTopics="mylink2_click"
delay="1000">Initial Content</saf:div>
delay="1000">Initial Content</s:div>
<br/><br/>
Fourth Component:
<saf:div
id="four"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
listenTopics="myLink3_click"
delay="0"
updateFreq="0">Initial Content</saf:div>
<s:div
id="four"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
listenTopics="myLink3_click"
delay="0"
updateFreq="0">Initial Content</s:div>
<br/><br/>
<saf:url id="remoteLink" value ="/AjaxRemoteLink.action" />
<saf:url id="testLink" value ="/AjaxTest.action" />
<s:url id="remoteLink" value ="/AjaxRemoteLink.action" />
<s:url id="testLink" value ="/AjaxTest.action" />
Remote link 1 updating "One Component" and "Two Component"<br/>
<saf:a
<s:a
id="link1"
theme="ajax"
href="%{remoteLink}"
notifyTopics="mylink1_click"
showErrorTransportText="true"
errorText="An Error ocurred">Update</saf:a>
errorText="An Error ocurred">Update</s:a>
<br/><br/>
Remote link 2 updating "Two Component" and "Three Component"<br/>
<saf:a
<s:a
id="link2"
theme="ajax"
href="%{remoteLink}"
notifyTopics="mylink2_click"
showErrorTransportText="true"
errorText="An Error ocurred">Update</saf:a>
errorText="An Error ocurred">Update</s:a>
<br/><br/>
Remote DIV that is not connected to any remote links:
<saf:div
<s:div
id="five"
cssStyle="border: 1px solid yellow;"
href="/AjaxTest.action"
theme="ajax"
delay="1000">Initial Content</saf:div>
delay="1000">Initial Content</s:div>
<br/><br/>
A Remote link that doesn't trigger any remote DIV updates<br/>
<saf:a
<s:a
id="link3"
theme="ajax"
href="%{remoteLink}"
showErrorTransportText="true"
errorText="An Error ocurred">Update
</saf:a>
</s:a>
<br/><br/>
A Remote link that will update "Fourth Component"
<saf:a
id="link4"
theme="ajax"
href="%{remoteLink}"
notifyTopics="myLink3_click"
showErrorTransportText="true"
errorText="An Error Ocurred">Update</saf:a>
<s:a
id="link4"
theme="ajax"
href="%{remoteLink}"
notifyTopics="myLink3_click"
showErrorTransportText="true"
errorText="An Error Ocurred">Update</s:a>
<br/><br/>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,15 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Ajax examples - tabbled panel</title>
<jsp:include page="/ajax/commonInclude.jsp"/>
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<saf:url value="/struts/niftycorners/nifty.js"/>"></script>
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<s:url value="/struts/niftycorners/nifty.js"/>"></script>
<script type="text/javascript">
dojo.event.connect(window, "onload", function() {
if (!NiftyCheck())
@@ -27,86 +27,86 @@
<table cellpadding="0" cellspacing="10" border="0" width="600">
<tr>
<td align="top">
<saf:tabbedPanel id="test" >
<saf:panel id="one" tabName="one">
<s:tabbedPanel id="test" >
<s:panel id="one" tabName="one">
This is the first pane<br/>
<saf:form>
<saf:textfield name="tt" label="Test Text"/> <br/>
<saf:textfield name="tt2" label="Test Text2"/>
</saf:form>
</saf:panel>
<saf:panel id="two" tabName="two">
<s:form>
<s:textfield name="tt" label="Test Text"/> <br/>
<s:textfield name="tt2" label="Test Text2"/>
</s:form>
</s:panel>
<s:panel id="two" tabName="two">
This is the second panel
</saf:panel>
<saf:panel id="three" tabName="three">
</s:panel>
<s:panel id="three" tabName="three">
This is the three
</saf:panel>
</saf:tabbedPanel>
</s:panel>
</s:tabbedPanel>
</td>
<td align="top">
<saf:tabbedPanel id="test2" >
<saf:panel id="left" tabName="left">
<s:tabbedPanel id="test2" >
<s:panel id="left" tabName="left">
This is the left pane<br/>
<saf:form>
<saf:textfield name="tt" label="Test Text"/> <br/>
<saf:textfield name="tt2" label="Test Text2"/>
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="ryh1" theme="ajax"
tabName="remote one"></saf:panel>
<saf:panel id="middle" tabName="middle">
<s:form>
<s:textfield name="tt" label="Test Text"/> <br/>
<s:textfield name="tt2" label="Test Text2"/>
</s:form>
</s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="ryh1" theme="ajax"
tabName="remote one"></s:panel>
<s:panel id="middle" tabName="middle">
middle tab<br/>
<saf:form>
<saf:textfield name="tt" label="Test Text44"/> <br/>
<saf:textfield name="tt2" label="Test Text442"/>
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="ryh21" theme="ajax" tabName="remote right"/>
</saf:tabbedPanel>
<s:form>
<s:textfield name="tt" label="Test Text44"/> <br/>
<s:textfield name="tt2" label="Test Text442"/>
</s:form>
</s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="ryh21" theme="ajax" tabName="remote right"/>
</s:tabbedPanel>
</td>
</tr>
<tr>
<td align="top">
<saf:tabbedPanel id="testremote">
<saf:panel remote="true" href="/AjaxTest.action" id="r1" theme="ajax" tabName="remote one">
<saf:action name="AjaxTest" executeResult="true" />
</saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="r2" theme="ajax" tabName="remote two"></saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="r3" theme="ajax" tabName="remote three"></saf:panel>
</saf:tabbedPanel>
<s:tabbedPanel id="testremote">
<s:panel remote="true" href="/AjaxTest.action" id="r1" theme="ajax" tabName="remote one">
<s:action name="AjaxTest" executeResult="true" />
</s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="r2" theme="ajax" tabName="remote two"></s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="r3" theme="ajax" tabName="remote three"></s:panel>
</s:tabbedPanel>
</td>
<td align="top">
<saf:tabbedPanel id="test3" >
<saf:panel id="left1" tabName="out one">
<s:tabbedPanel id="test3" >
<s:panel id="left1" tabName="out one">
Outer one<br/>
<saf:tabbedPanel id="test11">
<saf:panel id="i11" tabName="inner 1 one">Inner 1</saf:panel>
<saf:panel id="112" tabName="inner 1 two">Inner 2</saf:panel>
<saf:panel id="i13" tabName="inner 1 three">Inner 3</saf:panel>
</saf:tabbedPanel>
</saf:panel>
<saf:panel id="middle1" tabName="out two">
<s:tabbedPanel id="test11">
<s:panel id="i11" tabName="inner 1 one">Inner 1</s:panel>
<s:panel id="112" tabName="inner 1 two">Inner 2</s:panel>
<s:panel id="i13" tabName="inner 1 three">Inner 3</s:panel>
</s:tabbedPanel>
</s:panel>
<s:panel id="middle1" tabName="out two">
Outer two<br/>
<saf:tabbedPanel id="test12" >
<saf:panel id="i21" tabName="inner 2 one">Inner 21</saf:panel>
<saf:panel id="122" tabName="inner 2 two">Inner 22</saf:panel>
<saf:panel id="i23" tabName="inner 2 three">Inner 23</saf:panel>
</saf:tabbedPanel>
</saf:panel>
<saf:panel id="right1" tabName="out three">
<s:tabbedPanel id="test12" >
<s:panel id="i21" tabName="inner 2 one">Inner 21</s:panel>
<s:panel id="122" tabName="inner 2 two">Inner 22</s:panel>
<s:panel id="i23" tabName="inner 2 three">Inner 23</s:panel>
</s:tabbedPanel>
</s:panel>
<s:panel id="right1" tabName="out three">
Outer three<br/>
<saf:tabbedPanel id="test13">
<saf:panel id="i31" tabName="inner 3 one">Inner 31</saf:panel>
<saf:panel id="132" tabName="inner 3 two">Inner 32</saf:panel>
<saf:panel id="i33" tabName="inner 3 three">Inner 33</saf:panel>
</saf:tabbedPanel>
</saf:panel>
</saf:tabbedPanel>
<s:tabbedPanel id="test13">
<s:panel id="i31" tabName="inner 3 one">Inner 31</s:panel>
<s:panel id="132" tabName="inner 3 two">Inner 32</s:panel>
<s:panel id="i33" tabName="inner 3 three">Inner 33</s:panel>
</s:tabbedPanel>
</s:panel>
</s:tabbedPanel>
</td>
</tr>
</table>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
@@ -1,15 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Ajax examples - tabbled panel</title>
<jsp:include page="/ajax/commonInclude.jsp"/>
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<saf:url value="/struts/niftycorners/nifty.js"/>"></script>
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<s:url value="/struts/niftycorners/nifty.js"/>"></script>
<script type="text/javascript">
window.onload = function() {
if (!NiftyCheck())
@@ -27,26 +27,26 @@
<table cellpadding="0" cellspacing="10" border="0" width="600">
<tr>
<td align="top">
<saf:tabbedPanel id="test" theme="ajax">
<saf:panel id="one" tabName="one" theme="ajax" >
<s:tabbedPanel id="test" theme="ajax">
<s:panel id="one" tabName="one" theme="ajax" >
This is the first pane<br/>
<saf:form>
<saf:textfield name="tt" label="Test Text"/> <br/>
<saf:textfield name="tt2" label="Test Text2"/>
</saf:form>
</saf:panel>
<saf:panel id="two" tabName="two" theme="ajax">
<s:form>
<s:textfield name="tt" label="Test Text"/> <br/>
<s:textfield name="tt2" label="Test Text2"/>
</s:form>
</s:panel>
<s:panel id="two" tabName="two" theme="ajax">
This is the second panel
</saf:panel>
<saf:panel id="three" tabName="three" theme="ajax">
</s:panel>
<s:panel id="three" tabName="three" theme="ajax">
This is the three
</saf:panel>
</saf:tabbedPanel>
</s:panel>
</s:tabbedPanel>
</td>
</tr>
</table>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,15 +1,15 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Ajax examples - tabbled panel</title>
<jsp:include page="/ajax/commonInclude.jsp"/>
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<saf:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<saf:url value="/struts/niftycorners/nifty.js"/>"></script>
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/tabs.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyCorners.css"/>">
<link rel="stylesheet" type="text/css" href="<s:url value="/struts/niftycorners/niftyPrint.css"/>" media="print">
<script type="text/javascript" src="<s:url value="/struts/niftycorners/nifty.js"/>"></script>
<script type="text/javascript">
dojo.event.connect(window, "onload", function() {
if (!NiftyCheck())
@@ -28,30 +28,30 @@
<tr>
<td align="top">
<!--// START SNIPPET: tabbedpanel-tag-->
<saf:tabbedPanel id="test2" theme="simple" >
<saf:panel id="left" tabName="left">
<s:tabbedPanel id="test2" theme="simple" >
<s:panel id="left" tabName="left">
This is the left pane<br/>
<saf:form >
<saf:textfield name="tt" label="Test Text" /> <br/>
<saf:textfield name="tt2" label="Test Text2" />
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="ryh1" theme="ajax" tabName="remote one" />
<saf:panel id="middle" tabName="middle">
<s:form >
<s:textfield name="tt" label="Test Text" /> <br/>
<s:textfield name="tt2" label="Test Text2" />
</s:form>
</s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="ryh1" theme="ajax" tabName="remote one" />
<s:panel id="middle" tabName="middle">
middle tab<br/>
<saf:form >
<saf:textfield name="tt" label="Test Text44" /> <br/>
<saf:textfield name="tt2" label="Test Text442" />
</saf:form>
</saf:panel>
<saf:panel remote="true" href="/AjaxTest.action" id="ryh21" theme="ajax" tabName="remote right" />
</saf:tabbedPanel>
<s:form >
<s:textfield name="tt" label="Test Text44" /> <br/>
<s:textfield name="tt2" label="Test Text442" />
</s:form>
</s:panel>
<s:panel remote="true" href="/AjaxTest.action" id="ryh21" theme="ajax" tabName="remote right" />
</s:tabbedPanel>
<!--// END SNIPPET: tabbedpanel-tag-->
</td>
</tr>
</table>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Tabbed Panes</title>
@@ -15,15 +15,15 @@
<li><a href="example3.jsp">A remote and local tabbed panel</a></li>
<li><a href="example1.jsp">Various remote and local tabbed panels (with enclosed tabbed pannels)</a></li>
<li>
<saf:url id="url" action="example4" />
<saf:a href="%{#url}">Only remove tabbed panel</saf:a>
<s:url id="url" action="example4" />
<s:a href="%{#url}">Only remove tabbed panel</s:a>
</li>
</ol>
</p>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,24 +1,24 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@include file="partialChunkHeader.jsp"%>
<ul>
<saf:iterator value="category.children">
<s:iterator value="category.children">
<li>
<saf:if test="children.size() > 0">
<saf:a theme="ajax" href="toggle.action?catId=%{id}">+</saf:a>
</saf:if>
<saf:property value="name"/>
<s:if test="children.size() > 0">
<s:a theme="ajax" href="toggle.action?catId=%{id}">+</s:a>
</s:if>
<s:property value="name"/>
</li>
<saf:if test="toggle">
<saf:set name="display" value="'none'"/>
</saf:if>
<saf:else>
<saf:set name="display" value="''"/>
</saf:else>
<s:if test="toggle">
<s:set name="display" value="'none'"/>
</s:if>
<s:else>
<s:set name="display" value="''"/>
</s:else>
<saf:div theme="ajax"
<s:div theme="ajax"
id="children_%{id}"
cssStyle="display: %{display}"
href="getCategory.action?catId=%{id}"
listenTopics="children_%{id}"/>
</saf:iterator>
</s:iterator>
</ul>
@@ -1,10 +1,10 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@include file="partialChunkHeader.jsp"%>
<%
response.setContentType("text/javascript");
%>
dojo.event.topic.publish("children_<saf:property value="category.id"/>");
var d = document.getElementById("children_<saf:property value="category.id"/>");
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 {
@@ -1,13 +1,13 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Tree</title>
<saf:head theme="ajax"/>
<s:head theme="ajax"/>
</head>
<body>
<saf:action name="getCategory" executeResult="true"/>
<s:action name="getCategory" executeResult="true"/>
</body>
</html>
@@ -1,5 +1,5 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -15,22 +15,22 @@ NOTES:
</ul>
Default Editor configuration:<br/>
<saf:form id="form1" action="AjaxRemoteForm" method="post">
<saf:textarea name="data" theme="ajax" cols="50" rows="10" value="Test Data 1" />
<saf:submit value="Submit"/>
</saf:form>
<s:form id="form1" action="AjaxRemoteForm" method="post">
<s:textarea name="data" theme="ajax" cols="50" rows="10" value="Test Data 1" />
<s:submit value="Submit"/>
</s:form>
<br/>
Configured Editor configuration:<br/>
<saf:form id="form2" action="AjaxRemoteForm" method="post">
<saf:textarea id="editor2" name="data" theme="ajax" cols="50" rows="10" value="Test Data 2">
<saf:param name="editorControls">textGroup;|;justifyGroup;|;listGroup;indentGroup</saf:param>
</saf:textarea>
<saf:submit value="Submit"/>
</saf:form>
<s:form id="form2" action="AjaxRemoteForm" method="post">
<s:textarea id="editor2" name="data" theme="ajax" cols="50" rows="10" value="Test Data 2">
<s:param name="editorControls">textGroup;|;justifyGroup;|;listGroup;indentGroup</s:param>
</s:textarea>
<s:submit value="Submit"/>
</s:form>
<br/>
<saf:include value="../footer.jsp"/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@@ -11,48 +11,48 @@ An example populating a list of object (Person.java) into Struts' action (Person
<p/>
See the jsp code <saf:url id="url" action="showJspCode" namespace="/conversion" /><saf:a href="%{#url}">here.</saf:a><br/>
See the code for PersonAction.java <saf:url id="url" action="showPersonActionJavaCode" namespace="/conversion" /><saf:a href="%{#url}">here.</saf:a><br/>
See the code for Person.java <saf:url id="url" action="showPersonJavaCode" namespace="/conversion" /><saf:a href="%{#url}">here.</saf:a><br/>
See the jsp code <s:url id="url" action="showJspCode" namespace="/conversion" /><s:a href="%{#url}">here.</s:a><br/>
See the code for PersonAction.java <s:url id="url" action="showPersonActionJavaCode" namespace="/conversion" /><s:a href="%{#url}">here.</s:a><br/>
See the code for Person.java <s:url id="url" action="showPersonJavaCode" namespace="/conversion" /><s:a href="%{#url}">here.</s:a><br/>
<p/>
<saf:actionerror />
<saf:fielderror />
<s:actionerror />
<s:fielderror />
<saf:form action="submitPersonInfo" namespace="/conversion" method="post">
<%--
The following is done Dynamically
--%>
<saf:iterator value="new int[3]" status="stat">
<saf:textfield label="%{'Person '+#stat.index+' Name'}"
name="%{'persons['+#stat.index+'].name'}" />
<saf:textfield label="%{'Person '+#stat.index+' Age'}"
name="%{'persons['+#stat.index+'].age'}" />
</saf:iterator>
<%--
The following is done statically:-
--%>
<%--
<saf:textfield label="Person 1 Name"
name="persons[0].name" />
<saf:textfield label="Person 1 Age"
name="persons[0].age" />
<saf:textfield label="Person 2 Name"
name="persons[1].name" />
<saf:textfield label="Person 2 Age"
name="persons[1].age" />
<saf:textfield label="Person 3 Name"
name="persons[2].name" />
<saf:textfield label="Person 3 Age"
name="persons[2].age" />
--%>
<saf:submit />
</saf:form>
<s:form action="submitPersonInfo" namespace="/conversion" method="post">
<%--
The following is done Dynamically
--%>
<s:iterator value="new int[3]" status="stat">
<s:textfield label="%{'Person '+#stat.index+' Name'}"
name="%{'persons['+#stat.index+'].name'}" />
<s:textfield label="%{'Person '+#stat.index+' Age'}"
name="%{'persons['+#stat.index+'].age'}" />
</s:iterator>
<%--
The following is done statically:-
--%>
<%--
<s:textfield label="Person 1 Name"
name="persons[0].name" />
<s:textfield label="Person 1 Age"
name="persons[0].age" />
<s:textfield label="Person 2 Name"
name="persons[1].name" />
<s:textfield label="Person 2 Age"
name="persons[1].age" />
<s:textfield label="Person 3 Name"
name="persons[2].name" />
<s:textfield label="Person 3 Age"
name="persons[2].age" />
--%>
<s:submit />
</s:form>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,7 +8,7 @@
<body>
<ul>
<li><saf:url id="url" action="enterPersonsInfo" namespace="/conversion" /><saf:a href="%{#url}">Populate into the Struts action class a List of Person.java Object</saf:a></li>
<li><s:url id="url" action="enterPersonsInfo" namespace="/conversion" /><s:a href="%{#url}">Populate into the Struts action class a List of Person.java Object</s:a></li>
</ul>
</body>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -7,10 +7,10 @@
</head>
<body>
<saf:iterator value="persons" status="status">
<saf:label label="%{'SET '+#status.index+' Name'}" value="%{name}" /><br/>
<saf:label label="%{'SET '+#status.index+' Age'}" value="%{age}" /><br/>
</saf:iterator>
<s:iterator value="persons" status="status">
<s:label label="%{'SET '+#status.index+' Name'}" value="%{name}" /><br/>
<s:label label="%{'SET '+#status.index+' Age'}" value="%{age}" /><br/>
</s:iterator>
</body>
</html>
@@ -1,8 +1,8 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<div style="background-color:yellow;">
<p>
JSP Custom Template -
parameter 'paramName' - <saf:property value="%{top.parameters.paramName}" />
parameter 'paramName' - <s:property value="%{top.parameters.paramName}" />
</p>
</div>
+2 -2
View File
@@ -1,2 +1,2 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<saf:date name="now"/>
<%@ taglib prefix="s" uri="/tags" %>
<s:date name="now"/>
@@ -1,41 +1,41 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<saf:if test="currentEmployee!=null">
<saf:text id="title" name="item.edit"><saf:param><saf:text name="employee"/></saf:param></saf:text>
</saf:if>
<saf:else>
<saf:text id="title" name="item.create"><saf:param><saf:text name="employee"/></saf:param></saf:text>
</saf:else>
<s:if test="currentEmployee!=null">
<s:text id="title" name="item.edit"><s:param><s:text name="employee"/></s:param></s:text>
</s:if>
<s:else>
<s:text id="title" name="item.create"><s:param><s:text name="employee"/></s:param></s:text>
</s:else>
<html>
<head>
<title><saf:property value="#title"/></title>
<saf:head/>
<title><s:property value="#title"/></title>
<s:head/>
</head>
<body>
<h1><saf:property value="#title"/></h1>
<h1><s:property value="#title"/></h1>
<saf:action id="skillAction" namespace="/skill" name="list"/>
<s:action id="skillAction" namespace="/skill" name="list"/>
<saf:form name="editForm" action="save">
<saf:textfield label="Employee Id" name="currentEmployee.empId"/>
<saf:textfield label="%{getText('employee.firstName')}" name="currentEmployee.firstName"/>
<saf:textfield label="%{getText('employee.lastName')}" name="currentEmployee.lastName"/>
<saf:datepicker label="Birthdate" name="currentEmployee.birthDate"/>
<saf:textfield label="Salary" name="currentEmployee.salary"/>
<saf:checkbox fieldValue="true" label="Married" name="currentEmployee.married"/>
<saf:combobox list="availablePositions" label="Position" name="currentEmployee.position"/>
<saf:select list="#skillAction.availableItems" listKey="name" label="Main Skill"
<s:form name="editForm" action="save">
<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"/>
<s:datepicker label="Birthdate" name="currentEmployee.birthDate"/>
<s:textfield label="Salary" name="currentEmployee.salary"/>
<s:checkbox fieldValue="true" label="Married" name="currentEmployee.married"/>
<s:combobox list="availablePositions" label="Position" name="currentEmployee.position"/>
<s:select list="#skillAction.availableItems" listKey="name" label="Main Skill"
name="currentEmployee.mainSkill.name"/>
<saf:select list="#skillAction.availableItems" listKey="name" listValue="description" label="Other Skills"
<s:select list="#skillAction.availableItems" listKey="name" listValue="description" label="Other Skills"
name="selectedSkills" multiple="true"/>
<saf:password label="Password" name="currentEmployee.password"/>
<saf:radio list="availableLevels" name="currentEmployee.level"/>
<saf:textarea label="Comment" name="currentEmployee.comment" cols="50" rows="3"/>
<saf:submit value="%{getText('save')}" />
</saf:form>
<p><a href="<saf:url action="list"/>"><saf:text name="employee.backtolist"/></a></p>
<s:password label="Password" name="currentEmployee.password"/>
<s:radio list="availableLevels" name="currentEmployee.level"/>
<s:textarea label="Comment" name="currentEmployee.comment" cols="50" rows="3"/>
<s:submit value="%{getText('save')}" />
</s:form>
<p><a href="<s:url action="list"/>"><s:text name="employee.backtolist"/></a></p>
</body>
</html>
@@ -1,27 +1,27 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<saf:if test="currentSkill!=null">
<saf:set name="submitType" value="'update'"/>
<saf:text id="title" name="item.edit"><saf:param><saf:text name="skill"/></saf:param></saf:text>
</saf:if>
<saf:else>
<saf:set name="submitType" value="'create'"/>
<saf:text id="title" name="item.create"><saf:param><saf:text name="skill"/></saf:param></saf:text>
</saf:else>
<s:if test="currentSkill!=null">
<s:set name="submitType" value="'update'"/>
<s:text id="title" name="item.edit"><s:param><s:text name="skill"/></s:param></s:text>
</s:if>
<s:else>
<s:set name="submitType" value="'create'"/>
<s:text id="title" name="item.create"><s:param><s:text name="skill"/></s:param></s:text>
</s:else>
<html>
<head><title><saf:property value="#title"/></title></head>
<head><title><s:property value="#title"/></title></head>
<body>
<h1><saf:property value="#title"/></h1>
<h1><s:property value="#title"/></h1>
<saf:form action="save">
<saf:textfield label="%{getText('skill.name')}" name="currentSkill.name"/>
<saf:textfield label="%{getText('skill.description')}" name="currentSkill.description"/>
<%--saf:submit name="%{#submitType}" value="%{getText('save')}" /--%>
<saf:submit value="%{getText('save')}" />
</saf:form>
<p><a href="<saf:url action="list"/>"><saf:text name="skill.backtolist"/></a></p>
<s:form action="save">
<s:textfield label="%{getText('skill.name')}" name="currentSkill.name"/>
<s:textfield label="%{getText('skill.description')}" name="currentSkill.description"/>
<%--s:submit name="%{#submitType}" value="%{getText('save')}" /--%>
<s:submit value="%{getText('save')}" />
</s:form>
<p><a href="<s:url action="list"/>"><s:text name="skill.backtolist"/></a></p>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,12 +8,12 @@
<h1> CRUD </h1>
<p>
<ul>
<li><saf:url id="url" namespace="/skill" action="list"/><saf:a href="%{url}">List available Skills</saf:a></li>
<li><saf:url id="url" namespace="/skill" action="edit"/><saf:a href="%{url}">Create/Edit Skill</saf:a></li>
<li><saf:url id="url" namespace="/employee" action="list"/><saf:a href="%{url}">List available Employees</saf:a></li>
<li><saf:url id="url" namespace="/employee" action="edit"/><saf:a href="%{url}">Create/Edit Employee</saf:a></li>
</ul>
<ul>
<li><s:url id="url" namespace="/skill" action="list"/><s:a href="%{url}">List available Skills</s:a></li>
<li><s:url id="url" namespace="/skill" action="edit"/><s:a href="%{url}">Create/Edit Skill</s:a></li>
<li><s:url id="url" namespace="/employee" action="list"/><s:a href="%{url}">List available Employees</s:a></li>
<li><s:url id="url" namespace="/employee" action="edit"/><s:a href="%{url}">Create/Edit Employee</s:a></li>
</ul>
</p>
@@ -1,4 +1,4 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
@@ -12,15 +12,15 @@
<th>First Name</th>
<th>Last Name</th>
</tr>
<saf:iterator value="availableItems">
<s:iterator value="availableItems">
<tr>
<td><a href="<saf:url action="edit-%{empId}" />"><saf:property value="empId"/></a></td>
<td><saf:property value="firstName"/></td>
<td><saf:property value="lastName"/></td>
<td><a href="<s:url action="edit-%{empId}" />"><s:property value="empId"/></a></td>
<td><s:property value="firstName"/></td>
<td><s:property value="lastName"/></td>
</tr>
</saf:iterator>
</s:iterator>
</table>
<p><a href="<saf:url action="edit-" includeParams="none"/>">Create new Employee</a></p>
<p><a href="<saf:url action="showcase" namespace="/" includeParams="none"/>">Back to Showcase Startpage</a></p>
<p><a href="<s:url action="edit-" includeParams="none"/>">Create new Employee</a></p>
<p><a href="<s:url action="showcase" namespace="/" includeParams="none"/>">Back to Showcase Startpage</a></p>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
@@ -10,15 +10,15 @@
<tr>
<th>Name</th><th>Description</th>
</tr>
<saf:iterator value="availableItems">
<s:iterator value="availableItems">
<tr>
<td><a href="<saf:url action="edit"><saf:param name="skillName" value="name"/></saf:url>"><saf:property value="name"/></a></td>
<td><saf:property value="description"/></td>
<td><a href="<s:url action="edit"><s:param name="skillName" value="name"/></s:url>"><s:property value="name"/></a></td>
<td><s:property value="description"/></td>
</tr>
</saf:iterator>
</s:iterator>
</table>
<!-- Although namescape not correctly specified, the following link should find the right action -->
<p><a href="<saf:url action="edit" includeParams="none"/>">Create new Skill</a></p>
<p><a href="<saf:url action="showcase" namespace="/" includeParams="none"/>">Back to Showcase Startpage</a></p>
<p><a href="<s:url action="edit" includeParams="none"/>">Create new Skill</a></p>
<p><a href="<s:url action="showcase" namespace="/" includeParams="none"/>">Back to Showcase Startpage</a></p>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase</title>
@@ -7,7 +7,7 @@
<body>
<h1>File Download Example</h1>
Click this <saf:url id="url" action="download"/><saf:a href="%{url}">link</saf:a> to download Struts logo.
Click this <s:url id="url" action="download"/><s:a href="%{url}">link</s:a> to download Struts logo.
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase</title>
@@ -9,10 +9,10 @@
<p>
<ul>
<li>ContentType: <saf:property value="uploadContentType" /></li>
<li>FileName: <saf:property value="uploadFileName" /></li>
<li>File: <saf:property value="upload" /></li>
<li>Caption:<saf:property value="caption" /></li>
<li>ContentType: <s:property value="uploadContentType" /></li>
<li>FileName: <s:property value="uploadFileName" /></li>
<li>File: <s:property value="upload" /></li>
<li>Caption:<s:property value="caption" /></li>
</ul>
</p>
@@ -1,5 +1,5 @@
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase</title>
@@ -8,11 +8,11 @@
<body>
<h1>Fileupload sample</h1>
<saf:form action="doUpload" method="POST" enctype="multipart/form-data">
<saf:file name="upload" label="File"/>
<saf:textfield name="caption" label="Caption"/>
<saf:submit />
</saf:form>
<s:form action="doUpload" method="POST" enctype="multipart/form-data">
<s:file name="upload" label="File"/>
<s:textfield name="caption" label="Caption"/>
<s:submit />
</s:form>
</body>
</html>
@@ -1,18 +1,18 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Freemarker</title>
<title>Showcase - Freemarker</title>
</head>
<body>
<ul>
<li>
<saf:url id="url" action="customFreemarkerManagerDemo" namespace="/freemarker" />
<saf:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</saf:a>
</li>
</ul>
<ul>
<li>
<s:url id="url" action="customFreemarkerManagerDemo" namespace="/freemarker" />
<s:a href="%{#url}">Demo of usage of a Custom Freemarker Manager</s:a>
</li>
</ul>
</body>
</html>
+6 -6
View File
@@ -1,4 +1,4 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Struts ~ Getting Support</title>
@@ -14,18 +14,18 @@
<th style="width: auto;">Description</th>
</tr>
<tr>
<td><a href="http://forums.opensymphony.com/forum.jspa?forumID=1&start=0">User Forum</a></td>
<td>Use this forum if you encounter problems while developing and using with Struts</td>
<td><a href="http://struts.apache.org/mail.html">User List</a></td>
<td>Use this mailing list if you encounter problems while developing and using with Struts</td>
</tr>
<tr>
<td><a href="http://wiki.opensymphony.com/display/WW/WebWork">Wiki</a></td>
<td>The primary online documentation web site</td>
<td><a href="http://struts.apache.org/2.x/">Struts 2</a></td>
<td>The Struts 2 website</td>
</tr>
</table>
</div>
<div id="local">
<img src='<saf:url value="/images/logo.png"/>' alt="Struts Logo" width="290" height="80"/>
<img src='<s:url value="/images/logo.png"/>' alt="Struts Logo" width="290" height="80"/>
</div>
</body>
</html>
+5 -5
View File
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -13,10 +13,10 @@ each doing what they do best.
</p>
<p>
<ul>
<li><saf:url id="url" namespace="/jsf/employee" action="list"/><saf:a href="%{url}">List available Employees</saf:a></li>
<li><saf:url id="url" namespace="/jsf/employee" action="edit"/><saf:a href="%{url}">Create/Edit Employee</saf:a></li>
</ul>
<ul>
<li><s:url id="url" namespace="/jsf/employee" action="list"/><s:a href="%{url}">List available Employees</s:a></li>
<li><s:url id="url" namespace="/jsf/employee" action="edit"/><s:a href="%{url}">Create/Edit Employee</s:a></li>
</ul>
</p>
@@ -1,31 +1,31 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Model Driven Example</title>
<saf:head/>
<s:head/>
</head>
<body>
<saf:form action="modelDrivenResult" method="POST" namespace="/modelDriven">
<saf:textfield
label="Gangster Name"
name="name" />
<saf:textfield
label="Gangster Age"
name="age" />
<saf:checkbox
label="Gangster Busted Before"
name="bustedBefore" />
<saf:textarea
cols="30"
rows="5"
label="Gangster Description"
name="description" />
<saf:submit />
</saf:form>
<s:form action="modelDrivenResult" method="POST" namespace="/modelDriven">
<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 />
</s:form>
</body>
</html>
@@ -1,24 +1,24 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Model Driven Example</title>
<saf:head/>
<s:head/>
</head>
<body>
<saf:label
label="Gangster Name"
name="name" /><br/>
<saf:label
label="Gangster Age"
name="age" /><br/>
<saf:label
label="Busted Before"
name="bustedBefore" /><br/>
<saf:label
label="Gangster Description"
name="description" /><br/>
<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/>
</body>
</html>
@@ -1,4 +1,4 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,7 +6,7 @@
</head>
<body>
<saf:form action="doEditPerson" theme="simple" validate="false">
<s:form action="doEditPerson" theme="simple" validate="false">
<table>
<tr>
@@ -14,23 +14,23 @@
<th>First Name</th>
<th>Last Name</th>
</tr>
<saf:iterator id="p" value="persons">
<s:iterator id="p" value="persons">
<tr>
<td>
<saf:property value="%{id}" />
<s:property value="%{id}" />
</td>
<td>
<saf:textfield label="First Name" name="persons(%{id}).name" value="%{name}" theme="simple" />
<s:textfield label="First Name" name="persons(%{id}).name" value="%{name}" theme="simple" />
</td>
<td>
<saf:textfield label="Last Name" name="persons(%{id}).lastName" value="%{lastName}" theme="simple"/>
<s:textfield label="Last Name" name="persons(%{id}).lastName" value="%{lastName}" theme="simple"/>
</td>
</tr>
</saf:iterator>
</s:iterator>
</table>
<saf:submit value="Save all persons"/>
</saf:form>
<s:submit value="Save all persons"/>
</s:form>
<ul>
<li><a href="newPerson!input.action">Create</a> a new person</li>
+32 -32
View File
@@ -1,14 +1,14 @@
<%--
showcase.jsp
@version $Date: 2006/03/20 16:04:09 $ $Id: showcase.jsp,v 1.17 2006/03/20 16:04:09 tmjee Exp $
showcase.jsp
@version $Date: 2006/03/20 16:04:09 $ $Id: showcase.jsp,v 1.17 2006/03/20 16:04:09 tmjee Exp $
--%>
<%@ taglib uri="/struts-action" prefix="saf" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase</title>
<saf:head theme="simple"/>
<s:head theme="simple"/>
</head>
<body>
@@ -17,60 +17,60 @@
<p>The given examples will demonstrate the usages of all Struts tags as well as validations etc.</p>
<p>
<ul>
<ul>
<!-- config-browser -->
<li><saf:url id="url" namespace="/config-browser" action="index"/><saf:a href="%{url}">Configuration browser (Great for development!)</saf:a></li>
<li><s:url id="url" namespace="/config-browser" action="index"/><s:a href="%{url}">Configuration browser (Great for development!)</s:a></li>
<!-- continuation -->
<li><saf:url id="url" namespace="/continuations" action="guess"/><saf:a href="%{url}">Continuations Example</saf:a></li>
<!-- tags -->
<li><saf:url id="url" value="/tags"/><saf:a href="%{url}">Tags Examples</saf:a></li>
<!-- fileupload -->
<li><saf:url id="url" namespace="/fileupload" action="upload"/><saf:a href="%{url}">File Upload Example</saf:a></li>
<!-- continuation -->
<li><s:url id="url" namespace="/continuations" action="guess"/><s:a href="%{url}">Continuations Example</s:a></li>
<!-- tags -->
<li><s:url id="url" value="/tags"/><s:a href="%{url}">Tags Examples</s:a></li>
<!-- fileupload -->
<li><s:url id="url" namespace="/fileupload" action="upload"/><s:a href="%{url}">File Upload Example</s:a></li>
<!-- crud -->
<li><saf:url id="url" value="/empmanager"/><saf:a href="%{url}">CRUD Examples</saf:a></li>
<!-- person manager sample -->
<li><saf:url id="url" value="/person"/><saf:a href="%{url}">PersonManager Sample</saf:a></li>
<!-- crud -->
<li><s:url id="url" value="/empmanager"/><s:a href="%{url}">CRUD Examples</s:a></li>
<!-- person manager sample -->
<li><s:url id="url" value="/person"/><s:a href="%{url}">PersonManager Sample</s:a></li>
<!-- validation -->
<li><saf:url id="url" value="/validation"/><saf:a href="%{url}">Validation Examples</saf:a></li>
<li><s:url id="url" value="/validation"/><s:a href="%{url}">Validation Examples</s:a></li>
<!-- ajax -->
<li><saf:url id="url" value="/ajax"/><saf:a href="%{url}">AJAX Examples</saf:a></li>
<li><s:url id="url" value="/ajax"/><s:a href="%{url}">AJAX Examples</s:a></li>
<!-- action chaining -->
<li><saf:url id="url" namespace="actionchaining" action="actionChain1" method="input" /><saf:a href="%{url}">Action Chaining Example</saf:a></li>
<li><s:url id="url" namespace="actionchaining" action="actionChain1" method="input" /><s:a href="%{url}">Action Chaining Example</s:a></li>
<!-- execute and wait -->
<li><saf:url id="url" value="/wait"/><saf:a href="%{url}">Execute and Wait Examples</saf:a></li>
<li><s:url id="url" value="/wait"/><s:a href="%{url}">Execute and Wait Examples</s:a></li>
<!-- token -->
<li><saf:url id="url" value="/token"/><saf:a href="%{url}">Token Examples (double post)</saf:a></li>
<li><s:url id="url" value="/token"/><s:a href="%{url}">Token Examples (double post)</s:a></li>
<!-- filedownload -->
<li><saf:url id="url" value="/filedownload"/><saf:a href="%{url}">File Download Example</saf:a></li>
<li><s:url id="url" value="/filedownload"/><s:a href="%{url}">File Download Example</s:a></li>
<!-- model-driven -->
<li><saf:url id="url" action="modelDriven" namespace="/modelDriven" method="input"/><saf:a href="%{url}">Model Driven Example</saf:a>
<li><s:url id="url" action="modelDriven" namespace="/modelDriven" method="input"/><s:a href="%{url}">Model Driven Example</s:a>
<!-- conversion -->
<li><saf:url id="url" value="/conversion" /><saf:a href="%{url}">Conversion Example</saf:a></li>
<li><s:url id="url" value="/conversion" /><s:a href="%{url}">Conversion Example</s:a></li>
<!-- freemarker -->
<li><saf:url id="url" value="/freemarker" /><saf:a href="%{#url}">Freemarker Example</saf:a></li>
<li><s:url id="url" value="/freemarker" /><s:a href="%{#url}">Freemarker Example</s:a></li>
<!-- JavaServer Faces -->
<li><saf:url id="url" value="/jsf" /><saf:a href="%{#url}">JavaServer Faces Example</saf:a></li>
<li><s:url id="url" value="/jsf" /><s:a href="%{#url}">JavaServer Faces Example</s:a></li>
<!-- Chat (AJAX) Example -->
<li><saf:url id="url" value="/chat" /><saf:a href="%{#url}">Chat (AJAX) Example</saf:a></li>
<li><s:url id="url" value="/chat" /><s:a href="%{#url}">Chat (AJAX) Example</s:a></li>
<!-- Hangman (AJAX and Non AJAX) Example -->
<li><saf:url id="url" action="hangmanMenu" namespace="/hangman"/><saf:a href="%{#url}">Hangman (AJAX and Non AJAX) Example</saf:a>
<li><s:url id="url" action="hangmanMenu" namespace="/hangman"/><s:a href="%{#url}">Hangman (AJAX and Non AJAX) Example</s:a>
</ul>
</p>
+3 -3
View File
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,8 +8,8 @@
<h1> Tags </h1>
<ul>
<li><saf:url id="url" value="/tags/non-ui/" /><saf:a href="%{url}">Non UI Tags Examples</saf:a></li>
<li><saf:url id="url" value="/tags/ui" /><saf:a href="%{url}">UI Tags Example</saf:a></li>
<li><s:url id="url" value="/tags/non-ui/" /><s:a href="%{url}">Non UI Tags Examples</s:a></li>
<li><s:url id="url" value="/tags/ui" /><s:a href="%{url}">UI Tags Example</s:a></li>
</ul>
</body>
@@ -1,13 +1,13 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Tags - Non-Ui - Action Prefix</title>
</head>
<body>
<ul><saf:url id="url" action="actionPrefixExampleUsingFreemarker" namespace="/tags/non-ui/actionPrefix" />
<saf:a href="%{#url}">Action Prefix Example (Freemarker)</saf:a></ul>
<ul><s:url id="url" action="actionPrefixExampleUsingFreemarker" namespace="/tags/non-ui/actionPrefix" />
<s:a href="%{#url}">Action Prefix Example (Freemarker)</s:a></ul>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -13,30 +13,30 @@
<!-- lets include the first page many times -->
<div style="margin: 5px; border: solid 1px; ">
<saf:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage" namespace="/tags/non-ui/actionTag" executeResult="true" />
</div>
<!-- lets include the second page many times -->
<div style="margin: 5px; border: solid 1px; ">
<saf:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage2" namespace="/tags/non-ui/actionTag" executeResult="true" />
</div>
<!-- lets include the third page many time -->
<div style="margin: 5px; margin: 5px; border: solid 1px; ">
<saf:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
<saf:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
<s:action name="includePage3" namespace="/tags/non-ui/actionTag" executeResult="true" />
</div>
<saf:url id="url" action="lookAtSource" namespace="/tags/non-ui/actionTag" />
<saf:a href="%{#url}">Source</saf:a>
<s:url id="url" action="lookAtSource" namespace="/tags/non-ui/actionTag" />
<s:a href="%{#url}">Source</s:a>
</body>
</html>
@@ -1,12 +1,12 @@
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>UI Tags Example: Date</title>
<saf:head/>
<s:head/>
</head>
<body>
<saf:action id="myDate" name="date" namespace="/" executeResult="false" />
<s:action id="myDate" name="date" namespace="/" executeResult="false" />
<table>
<tr>
@@ -17,87 +17,87 @@
<tr>
<td><strong>Before date</strong></td>
<td>toString()</td>
<td><saf:property value="#myDate.before.toString()"/></td>
<td><s:property value="#myDate.before.toString()"/></td>
</tr>
<tr>
<td><strong>Past date</strong></td>
<td>toString()</td>
<td><saf:property value="#myDate.past.toString()"/></td>
<td><s:property value="#myDate.past.toString()"/></td>
</tr>
<tr>
<td><strong>Now date</strong></td>
<td>toString()</td>
<td><saf:property value="#myDate.now.toString()"/></td>
<td><s:property value="#myDate.now.toString()"/></td>
</tr>
<tr>
<td><strong>Future date</strong></td>
<td>toString()</td>
<td><saf:property value="#myDate.future.toString()"/></td>
<td><s:property value="#myDate.future.toString()"/></td>
</tr>
<tr>
<td><strong>After date</strong></td>
<td>toString()</td>
<td><saf:property value="#myDate.after.toString()"/></td>
<td><s:property value="#myDate.after.toString()"/></td>
</tr>
<tr>
<td><strong>Current date</strong></td>
<td>yyyy/MM/dd hh:mm:ss</td>
<td><saf:date name="#myDate.now" format="yyyy/MM/dd hh:mm:ss" /></td>
<td><s:date name="#myDate.now" format="yyyy/MM/dd hh:mm:ss" /></td>
</tr>
<tr>
<td><strong>Current date</strong></td>
<td>dd.MM.yyyy hh:mm:ss</td>
<td><saf:date name="#myDate.now" format="dd.MM.yyyy hh:mm:ss" /></td>
<td><s:date name="#myDate.now" format="dd.MM.yyyy hh:mm:ss" /></td>
</tr>
<tr>
<td><strong>Current time (24h)</strong></td>
<td>HH:mm:ss</td>
<td><saf:date name="#myDate.now" format="HH:mm:ss" /></td>
<td><s:date name="#myDate.now" format="HH:mm:ss" /></td>
</tr>
<tr>
<td><strong>Before date</strong></td>
<td>MMM, dd yyyy</td>
<td><saf:date name="#myDate.before" format="MMM, dd yyyy" /></td>
<td><s:date name="#myDate.before" format="MMM, dd yyyy" /></td>
</tr>
<tr>
<td><strong>Before date</strong></td>
<td>nice</td>
<td><saf:date name="#myDate.before" nice="true"/></td>
<td><s:date name="#myDate.before" nice="true"/></td>
</tr>
<tr>
<td><strong>After date</strong></td>
<td>dd.MM.yyyy</td>
<td><saf:date name="#myDate.after" format="dd.MM.yyyy" /></td>
<td><s:date name="#myDate.after" format="dd.MM.yyyy" /></td>
</tr>
<tr>
<td><strong>After date</strong></td>
<td>nice</td>
<td><saf:date name="#myDate.after" nice="true"/></td>
<td><s:date name="#myDate.after" nice="true"/></td>
</tr>
<tr>
<td><strong>Past date</strong></td>
<td>dd/MM/yyyy hh:mm</td>
<td><saf:date name="#myDate.past" format="dd/MM/yyyy hh:mm"/></td>
<td><s:date name="#myDate.past" format="dd/MM/yyyy hh:mm"/></td>
</tr>
<tr>
<td><strong>Future date</strong></td>
<td>MM-dd-yy</td>
<td><saf:date name="#myDate.past" format="MM-dd-yy"/></td>
<td><s:date name="#myDate.past" format="MM-dd-yy"/></td>
</tr>
<tr>
<td><strong>Future date (fallback)</strong></td>
<td>fallback</td>
<td><saf:date name="#myDate.future" /></td>
<td><s:date name="#myDate.future" /></td>
</tr>
<tr>
<td><strong>Past date</strong></td>
<td>nice</td>
<td><saf:date name="#myDate.past" nice="true"/></td>
<td><s:date name="#myDate.past" nice="true"/></td>
</tr>
<tr>
<td><strong>Future date</strong></td>
<td>nice</td>
<td><saf:date name="#myDate.future" nice="true"/></td>
<td><s:date name="#myDate.future" nice="true"/></td>
</tr>
</table>
</body>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,13 +8,13 @@
<h1>Non UI Tags</h1>
<ul>
<li><saf:url id="url" action="showActionTagDemo" namespace="/tags/non-ui/actionTag"/><saf:a href="%{url}">Action Tag</saf:a></li>
<li><saf:url id="url" value="date.jsp" /><saf:a href="%{url}">Date Tag</saf:a></li>
<li><saf:url id="url" action="showGeneratorTagDemo" namespace="/tags/non-ui/iteratorGeneratorTag" /><saf:a href="%{url}">Iterator Generator Tag</saf:a></li>
<li><saf:url id="url" action="showAppendTagDemo" namespace="/tags/non-ui/appendIteratorTag" /><saf:a href="%{#url}">Append Iterator Tag</saf:a>
<li><saf:url id="url" action="showMergeTagDemo" namespace="/tags/non-ui/mergeIteratorTag" /><saf:a href="%{#url}">Merge Iterator Demo</saf:a>
<li><saf:url id="url" action="showSubsetTagDemo" namespace="/tags/non-ui/subsetIteratorTag" /><saf:a href="%{#url}">Subset Tag</saf:a>
<li><saf:url id="url" value="actionPrefix/index.jsp"/><saf:a href="%{#url}">Action Prefix Example</saf:a></li>
<li><s:url id="url" action="showActionTagDemo" namespace="/tags/non-ui/actionTag"/><s:a href="%{url}">Action Tag</s:a></li>
<li><s:url id="url" value="date.jsp" /><s:a href="%{url}">Date Tag</s:a></li>
<li><s:url id="url" action="showGeneratorTagDemo" namespace="/tags/non-ui/iteratorGeneratorTag" /><s:a href="%{url}">Iterator Generator Tag</s:a></li>
<li><s:url id="url" action="showAppendTagDemo" namespace="/tags/non-ui/appendIteratorTag" /><s:a href="%{#url}">Append Iterator Tag</s:a>
<li><s:url id="url" action="showMergeTagDemo" namespace="/tags/non-ui/mergeIteratorTag" /><s:a href="%{#url}">Merge Iterator Demo</s:a>
<li><s:url id="url" action="showSubsetTagDemo" namespace="/tags/non-ui/subsetIteratorTag" /><s:a href="%{#url}">Subset Tag</s:a>
<li><s:url id="url" value="actionPrefix/index.jsp"/><s:a href="%{#url}">Action Prefix Example</s:a></li>
</ul>
</body>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,20 +6,20 @@
</head>
<body>
<saf:generator id="iterator1" separator="," val="%{iteratorValue1}" />
<saf:generator id="iterator2" separator="," val="%{iteratorValue2}" />
<saf:append id="appendedIterator">
<saf:param value="%{#attr.iterator1}" />
<saf:param value="%{#attr.iterator2}" />
</saf:append>
<saf:iterator value="#appendedIterator">
<saf:property /><br/>
</saf:iterator>
<saf:url value="%{'/tags/non-ui/'}" id="url" /><saf:a href="%{#url}">Back To Non-UI Demo</saf:a>
<saf:url value="%{'/'}" id="url" /><saf:a href="%{#url}">Back To Showcase</saf:a>
<s:generator id="iterator1" separator="," val="%{iteratorValue1}" />
<s:generator id="iterator2" separator="," val="%{iteratorValue2}" />
<s:append id="appendedIterator">
<s:param value="%{#attr.iterator1}" />
<s:param value="%{#attr.iterator2}" />
</s:append>
<s:iterator value="#appendedIterator">
<s:property /><br/>
</s:iterator>
<s:url value="%{'/tags/non-ui/'}" id="url" /><s:a href="%{#url}">Back To Non-UI Demo</s:a>
<s:url value="%{'/'}" id="url" /><s:a href="%{#url}">Back To Showcase</s:a>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,14 +6,14 @@
</head>
<body>
<saf:generator val="%{value}" separator="%{separator}" count="%{count}">
<saf:iterator value="%{top}">
<saf:property /><br/>
</saf:iterator>
</saf:generator>
<s:generator val="%{value}" separator="%{separator}" count="%{count}">
<s:iterator value="%{top}">
<s:property /><br/>
</s:iterator>
</s:generator>
<saf:url value="%{'/tags/non-ui/'}" id="url" /><saf:a href="%{#url}">Back To Non-UI Demo</saf:a>
<saf:url value="%{'/'}" id="url" /><saf:a href="%{#url}">Back To Showcase</saf:a>
<s:url value="%{'/tags/non-ui/'}" id="url" /><s:a href="%{#url}">Back To Non-UI Demo</s:a>
<s:url value="%{'/'}" id="url" /><s:a href="%{#url}">Back To Showcase</s:a>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,20 +6,20 @@
</head>
<body>
<saf:generator id="iterator1" val="%{iteratorValue1}" separator="," />
<saf:generator id="iterator2" val="%{iteratorValue2}" separator="," />
<saf:merge id="mergedIterator">
<saf:param value="%{#attr.iterator1}" />
<saf:param value="%{#attr.iterator2}" />
</saf:merge>
<saf:iterator value="%{#mergedIterator}">
<saf:property /><br/>
</saf:iterator>
<s:generator id="iterator1" val="%{iteratorValue1}" separator="," />
<s:generator id="iterator2" val="%{iteratorValue2}" separator="," />
<s:merge id="mergedIterator">
<s:param value="%{#attr.iterator1}" />
<s:param value="%{#attr.iterator2}" />
</s:merge>
<s:iterator value="%{#mergedIterator}">
<s:property /><br/>
</s:iterator>
<saf:url value="%{'/tags/non-ui/'}" id="url" /><saf:a href="%{#url}">Back To Non-UI Demo</saf:a>
<saf:url value="%{'/'}" id="url" /><saf:a href="%{#url}">Back To Showcase</saf:a>
<s:url value="%{'/tags/non-ui/'}" id="url" /><s:a href="%{#url}">Back To Non-UI Demo</s:a>
<s:url value="%{'/'}" id="url" /><s:a href="%{#url}">Back To Showcase</s:a>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,14 +6,14 @@
</head>
<body>
<saf:actionerror/>
<saf:actionmessage/>
<s:actionerror/>
<s:actionmessage/>
<saf:form action="submitAppendTagDemo" namespace="/tags/non-ui/appendIteratorTag" method="POST">
<saf:textfield label="iterator 1 values (comma separated)" name="iteratorValue1" />
<saf:textfield label="iterator 2 values (comma separated)" name="iteratorValue2" />
<saf:submit />
</saf:form>
<s:form action="submitAppendTagDemo" namespace="/tags/non-ui/appendIteratorTag" method="POST">
<s:textfield label="iterator 1 values (comma separated)" name="iteratorValue1" />
<s:textfield label="iterator 2 values (comma separated)" name="iteratorValue2" />
<s:submit />
</s:form>
</body>
</html>
@@ -1,21 +1,21 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Tag - Non Ui Tag - Iterator Generator Tag Demo</title>
<saf:head/>
<s:head/>
</head>
<body>
<saf:actionerror/>
<saf:actionmessage/>
<saf:form action="submitGeneratorTagDemo" namespace="/tags/non-ui/iteratorGeneratorTag" method="POST">
<saf:textfield label="Value" name="value" />
<saf:textfield label="Separator" name="separator" />
<saf:textfield label="Count" name="count" />
<saf:submit />
</saf:form>
<s:actionerror/>
<s:actionmessage/>
<s:form action="submitGeneratorTagDemo" namespace="/tags/non-ui/iteratorGeneratorTag" method="POST">
<s:textfield label="Value" name="value" />
<s:textfield label="Separator" name="separator" />
<s:textfield label="Count" name="count" />
<s:submit />
</s:form>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,11 +6,11 @@
</head>
<body>
<saf:form action="submitMergeTagDemo" namespace="/tags/non-ui/mergeIteratorTag" method="POST">
<saf:textfield label="Iterator 1 Value (Comma Separated)" name="iteratorValue1" />
<saf:textfield label="Iterator 2 Value (Comma Separated)" name="iteratorValue2" />
<saf:submit />
</saf:form>
<s:form action="submitMergeTagDemo" namespace="/tags/non-ui/mergeIteratorTag" method="POST">
<s:textfield label="Iterator 1 Value (Comma Separated)" name="iteratorValue1" />
<s:textfield label="Iterator 2 Value (Comma Separated)" name="iteratorValue2" />
<s:submit />
</s:form>
</body>
@@ -1,4 +1,4 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,15 +6,15 @@
</head>
<body>
<saf:actionerror/>
<saf:actionmessage/>
<s:actionerror/>
<s:actionmessage/>
<saf:form action="submitSubsetTagDemo" namespace="/tags/non-ui/subsetIteratorTag" method="POST">
<saf:textfield label="Iterator value (comma separated)" name="iteratorValue" />
<saf:textfield label="Count" name="count" />
<saf:textfield label="Start" name="start" />
<saf:submit />
</saf:form>
<s:form action="submitSubsetTagDemo" namespace="/tags/non-ui/subsetIteratorTag" method="POST">
<s:textfield label="Iterator value (comma separated)" name="iteratorValue" />
<s:textfield label="Count" name="count" />
<s:textfield label="Start" name="start" />
<s:submit />
</s:form>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -6,16 +6,16 @@
</head>
<body>
<saf:generator id="iterator" val="%{iteratorValue}" separator="," />
<s:generator id="iterator" val="%{iteratorValue}" separator="," />
<saf:subset count="%{count}" start="%{start}" source="%{#attr.iterator}" >
<saf:iterator>
<saf:property /><br/>
</saf:iterator>
</saf:subset>
<s:subset count="%{count}" start="%{start}" source="%{#attr.iterator}" >
<s:iterator>
<s:property /><br/>
</s:iterator>
</s:subset>
<saf:url value="%{'/tags/non-ui/'}" id="url" /><saf:a href="%{#url}">Back To Non-UI Demo</saf:a>
<saf:url value="%{'/'}" id="url" /><saf:a href="%{#url}">Back To Showcase</saf:a>
<s:url value="%{'/tags/non-ui/'}" id="url" /><s:a href="%{#url}">Back To Non-UI Demo</s:a>
<s:url value="%{'/'}" id="url" /><s:a href="%{#url}">Back To Showcase</s:a>
</body>
</html>
@@ -1,60 +1,60 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Tags - UI Tags - Component Tag</title>
</head>
<body>
This example tries to demonstrates the usage of &lt;saf:component ... &gt; tag.
This example tries to demonstrates the usage of &lt;s:component ... &gt; tag.
<p/>
To have a look at the source of this jsp page click
<saf:url id="url" action="showComponentTagExampleCode" namespace="/tags/ui"/>
<saf:a href="%{#url}">here</saf:a>
<s:url id="url" action="showComponentTagExampleCode" namespace="/tags/ui"/>
<s:a href="%{#url}">here</s:a>
<p/>
<b>Example 1:</b>
<b>Example 1:</b>
This example load the template from the webapp context path using
the default (ftl) as its template.
<saf:component
theme="customTheme"
templateDir="customTemplateDir"
template="ftlCustomTemplate">
<saf:param name="paramName" value="%{'paramValue1'}" />
</saf:component>
<s:component
theme="customTheme"
templateDir="customTemplateDir"
template="ftlCustomTemplate">
<s:param name="paramName" value="%{'paramValue1'}" />
</s:component>
<p/>
<b>Example 2:</b>
This example load the template from the webapp context path using
jsp as its template (notice the *.jsp extension to the template).
<saf:component
theme="customTheme"
templateDir="customTemplateDir"
template="jspCustomTemplate.jsp">
<saf:param name="paramName" value="%{'paramValue2'}" />
</saf:component>
jsp as its template (notice the *.jsp extension to the template).
<s:component
theme="customTheme"
templateDir="customTemplateDir"
template="jspCustomTemplate.jsp">
<s:param name="paramName" value="%{'paramValue2'}" />
</s:component>
<p/>
<b>Example 3</b>
This example load the template from the webapp context path,
using the default template directory and theme (default to
'template' and 'xhtml' respectively)
<saf:component template="mytemplate.jsp">
<saf:param name="paramName" value="%{'paramValue3'}" />
</saf:component>
<s:component template="mytemplate.jsp">
<s:param name="paramName" value="%{'paramValue3'}" />
</s:component>
<p/>
<b>Example 4</b>
<b>Example 4</b>
This example load the template from the webapp classpath using
a custom themplate directory and theme.
<saf:component
theme="myTheme"
templateDir="myTemplateDir"
template="myAnotherTemplate">
<saf:param name="paramName" value="%{'paramValue4'}" />
</saf:component>
<s:component
theme="myTheme"
templateDir="myTemplateDir"
template="myAnotherTemplate">
<s:param name="paramName" value="%{'paramValue4'}" />
</s:component>
<p/>
</body>
@@ -1,6 +1,6 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
Id:<saf:property value="%{nodeId}" /><br/>
Name:<saf:property value="%{nodeName}" /><br/>
Id:<s:property value="%{nodeId}" /><br/>
Name:<s:property value="%{nodeName}" /><br/>
@@ -1,126 +1,126 @@
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="saf" uri="/struts-action" %>
<%@ taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>UI Tags Example</title>
<saf:head/>
<s:head/>
</head>
<body>
<saf:actionerror/>
<saf:actionmessage/>
<saf:fielderror />
<s:actionerror/>
<s:actionmessage/>
<s:fielderror />
<saf:form action="exampleSubmit" method="post" enctype="multipart/form-data" tooltipConfig="#{'jsTooltipEnabled':'true'}">
<saf:textfield
label="Name"
name="name"
tooltip="Enter your Name here" />
<s:form action="exampleSubmit" method="post" enctype="multipart/form-data" tooltipConfig="#{'jsTooltipEnabled':'true'}">
<s:textfield
label="Name"
name="name"
tooltip="Enter your Name here" />
<saf:datepicker
tooltip="Select Your Birthday"
label="Birthday"
name="birthday" />
<s:datepicker
tooltip="Select Your Birthday"
label="Birthday"
name="birthday" />
<saf:textarea
tooltip="Enter your Biography"
label="Biograph"
name="bio"
cols="20"
rows="3"/>
<s:textarea
tooltip="Enter your Biography"
label="Biograph"
name="bio"
cols="20"
rows="3"/>
<saf:select
tooltip="Choose Your Favourite Color"
label="Favorite Color"
list="{'Red', 'Blue', 'Green'}"
name="favoriteColor"
<s:select
tooltip="Choose Your Favourite Color"
label="Favorite Color"
list="{'Red', 'Blue', 'Green'}"
name="favoriteColor"
emptyOption="true"
headerKey="None"
headerValue="None"/>
<saf:select
tooltip="Choose Your Favourite Language"
label="Favourite Language"
list="favouriteLanguages"
name="favouriteLanguage"
listKey="key"
listValue="description"
emptyOption="true"
headerKey="None"
headerValue="None"/>
<s:select
tooltip="Choose Your Favourite Language"
label="Favourite Language"
list="favouriteLanguages"
name="favouriteLanguage"
listKey="key"
listValue="description"
emptyOption="true"
headerKey="None"
headerValue="None"/>
<saf:checkboxlist
tooltip="Choose your Friends"
label="Friends"
list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"
name="friends"/>
<s:checkboxlist
tooltip="Choose your Friends"
label="Friends"
list="{'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}"
name="friends"/>
<saf:checkbox
tooltip="Confirmed that your are Over 18"
label="Age 18+"
name="legalAge"/>
<s:checkbox
tooltip="Confirmed that your are Over 18"
label="Age 18+"
name="legalAge"/>
<saf:doubleselect
tooltip="Choose Your State"
label="State"
name="region" list="{'North', 'South'}"
value="'South'"
doubleValue="'Florida'"
<s:doubleselect
tooltip="Choose Your State"
label="State"
name="region" list="{'North', 'South'}"
value="'South'"
doubleValue="'Florida'"
doubleList="top == 'North' ? {'Oregon', 'Washington'} : {'Texas', 'Florida'}"
doubleName="state"
headerKey="-1"
headerValue="---------- Please Select ----------"
emptyOption="true" />
<saf:doubleselect
tooltip="Choose your Vehical"
label="Favourite Vehical"
name="favouriteVehicalType"
list="vehicalTypeList"
listKey="key"
listValue="description"
value="'MotorcycleKey'"
doubleValue="'YamahaKey'"
doubleList="vehicalSpecificList"
doubleListKey="key"
doubleListValue="description"
doubleName="favouriteVehicalSpecific" headerKey="-1"
headerValue="---------- Please Select ----------"
emptyOption="true" />
<s:doubleselect
tooltip="Choose your Vehical"
label="Favourite Vehical"
name="favouriteVehicalType"
list="vehicalTypeList"
listKey="key"
listValue="description"
value="'MotorcycleKey'"
doubleValue="'YamahaKey'"
doubleList="vehicalSpecificList"
doubleListKey="key"
doubleListValue="description"
doubleName="favouriteVehicalSpecific" headerKey="-1"
headerValue="---------- Please Select ----------"
emptyOption="true" />
<saf:file
tooltip="Upload Your Picture"
label="Picture"
name="picture" />
<saf:optiontransferselect
tooltip="Select Your Favourite Cartoon Characters"
label="Favourite Cartoons Characters"
name="leftSideCartoonCharacters"
leftTitle="Left Title"
rightTitle="Right Title"
list="{'Popeye', 'He-Man', 'Spiderman'}"
multiple="true"
headerKey="headerKey"
headerValue="--- Please Select ---"
emptyOption="true"
doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
doubleName="rightSideCartoonCharacters"
doubleHeaderKey="doubleHeaderKey"
doubleHeaderValue="--- Please Select ---"
doubleEmptyOption="true"
doubleMultiple="true" />
<s:file
tooltip="Upload Your Picture"
label="Picture"
name="picture" />
<s:optiontransferselect
tooltip="Select Your Favourite Cartoon Characters"
label="Favourite Cartoons Characters"
name="leftSideCartoonCharacters"
leftTitle="Left Title"
rightTitle="Right Title"
list="{'Popeye', 'He-Man', 'Spiderman'}"
multiple="true"
headerKey="headerKey"
headerValue="--- Please Select ---"
emptyOption="true"
doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
doubleName="rightSideCartoonCharacters"
doubleHeaderKey="doubleHeaderKey"
doubleHeaderValue="--- Please Select ---"
doubleEmptyOption="true"
doubleMultiple="true" />
<saf:textarea
label="Your Thougths"
name="thoughts"
tooltip="Enter your thoughts here" />
<saf:submit onclick="alert('aaaa');" />
<saf:reset onclick="alert('bbbb');" />
</saf:form>
<s:textarea
label="Your Thougths"
name="thoughts"
tooltip="Enter your thoughts here" />
<s:submit onclick="alert('aaaa');" />
<s:reset onclick="alert('bbbb');" />
</s:form>
</body>
</html>
@@ -1,4 +1,4 @@
<%@taglib prefix="saf" uri="/struts-action" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
@@ -8,36 +8,36 @@
<h1>Example Submitted</h1>
<table>
<saf:label label="Name" name="name" />
<saf:label label="Birthday" name="birthday" />
<saf:label label="Biography" name="bio" />
<saf:label label="Favourite Color" name="favouriteColor" />
<saf:label label="Friends" name="friends" />
<saf:label label="Legal Age" name="legalAge" />
<saf:label label="Region" name="region" />
<saf:label label="State" name="state" />
<saf:label label="Picture" name="picture" />
<saf:label label="Favourite Language" name="favouriteLanguage" />
<saf:label label="Favourite Vehical Type" name="favouriteVehicalType" />
<saf:label label="Favourite Vehical Specific" name="favouriteVehicalSpecific" />
<tr>
<td><label class="label">Favourite Cartoon Characters (Left):</label></td>
<td>
<saf:iterator value="leftSideCartoonCharacters" status="stat">
<saf:property value="%{#stat.count}" />.<saf:property value="top" />&nbsp;
</saf:iterator>
</td>
</tr>
<tr>
<td><label class="label">Favourite Cartoon Characters (Right):</label></td>
<td>
<saf:iterator value="rightSideCartoonCharacters" status="stat">
<saf:property value="%{#stat.count}" />.<saf:property value="top" />&nbsp;
</saf:iterator>
</td>
</tr>
<saf:label label="Thoughts" name="thoughts" />
<s:label label="Name" name="name" />
<s:label label="Birthday" name="birthday" />
<s:label label="Biography" name="bio" />
<s:label label="Favourite Color" name="favouriteColor" />
<s:label label="Friends" name="friends" />
<s:label label="Legal Age" name="legalAge" />
<s:label label="Region" name="region" />
<s:label label="State" name="state" />
<s:label label="Picture" name="picture" />
<s:label label="Favourite Language" name="favouriteLanguage" />
<s:label label="Favourite Vehical Type" name="favouriteVehicalType" />
<s:label label="Favourite Vehical Specific" name="favouriteVehicalSpecific" />
<tr>
<td><label class="label">Favourite Cartoon Characters (Left):</label></td>
<td>
<s:iterator value="leftSideCartoonCharacters" status="stat">
<s:property value="%{#stat.count}" />.<s:property value="top" />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td><label class="label">Favourite Cartoon Characters (Right):</label></td>
<td>
<s:iterator value="rightSideCartoonCharacters" status="stat">
<s:property value="%{#stat.count}" />.<s:property value="top" />&nbsp;
</s:iterator>
</td>
</tr>
<s:label label="Thoughts" name="thoughts" />
</table>
</body>
</html>
+14 -14
View File
@@ -1,21 +1,21 @@
<%@taglib uri="/struts-action" prefix="saf" %>
<%@taglib prefix="s" uri="/tags" %>
<html>
<head>
<title>Showcase - Tags - UI Tags</title>
<title>Showcase - Tags - UI Tags</title>
</head>
<body>
<h1>UI Tags</h1>
<ul>
<li><saf:url id="url" namespace="/tags/ui" action="example" method="input" /><saf:a href="%{url}">UI Example</saf:a></li>
<li><saf:url id="url" namespace="/tags/ui" action="exampleVelocity" method="input" /><saf:a href="%{url}">UI Example (Velocity)</saf:a></li>
<li><saf:url id="url" namespace="/tags/ui" action="lotsOfOptiontransferselect" method="input" /><saf:a href="%{url}">Option Transfer Select UI Example</saf:a></li>
<li><saf:url id="url" namespace="/tags/ui" action="lotsOfRichtexteditor" method="input" /><saf:a href="%{url}">Rich Text Editor UI Example</saf:a></li>
<li><saf:url id="url" namespace="/tags/ui" value="treeExampleStatic.jsp" /><saf:a href="%{url}">Tree Example (static)</saf:a>
<li><saf:url id="url" namespace="/tags/ui" action="showDynamicTreeAction"/><saf:a href="%{url}">Tree Example (dynamic)</saf:a>
<li><saf:url id="url" value="componentTagExample.jsp"/><saf:a href="%{#url}">Component Tag Example</saf:a>
<%--li><saf:url id="url" namespace="/tags/ui" action="populateUsingIterator" method="input" /><saf:a href="%{url}">UI population using iterator tag</saf:a></li--%>
</ul>
<h1>UI Tags</h1>
<ul>
<li><s:url id="url" namespace="/tags/ui" action="example" method="input" /><s:a href="%{url}">UI Example</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="exampleVelocity" method="input" /><s:a href="%{url}">UI Example (Velocity)</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="lotsOfOptiontransferselect" method="input" /><s:a href="%{url}">Option Transfer Select UI Example</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="lotsOfRichtexteditor" method="input" /><s:a href="%{url}">Rich Text Editor UI Example</s:a></li>
<li><s:url id="url" namespace="/tags/ui" value="treeExampleStatic.jsp" /><s:a href="%{url}">Tree Example (static)</s:a>
<li><s:url id="url" namespace="/tags/ui" action="showDynamicTreeAction"/><s:a href="%{url}">Tree Example (dynamic)</s:a>
<li><s:url id="url" value="componentTagExample.jsp"/><s:a href="%{#url}">Component Tag Example</s:a>
<%--li><s:url id="url" namespace="/tags/ui" action="populateUsingIterator" method="input" /><s:a href="%{url}">UI population using iterator tag</s:a></li--%>
</ul>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More