You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ha...@apache.org on 2001/07/10 17:27:19 UTC
cvs commit: xml-cocoon2/webapp/docs/samples/formvalidation ERROR.xsp OK.xsp descriptor.xml
haul 01/07/10 08:27:17
Modified: xdocs logicsheet-forms.xml
webapp sitemap.xmap
webapp/docs/samples samples.xml
Added: webapp/docs/samples/formvalidation ERROR.xsp OK.xsp
descriptor.xml
Log:
examples for formvalidation, documentation fixes
Revision Changes Path
1.2 +11 -6 xml-cocoon2/xdocs/logicsheet-forms.xml
Index: logicsheet-forms.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/xdocs/logicsheet-forms.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- logicsheet-forms.xml 2001/06/19 11:45:37 1.1
+++ logicsheet-forms.xml 2001/07/10 15:26:49 1.2
@@ -41,11 +41,11 @@
<?xml version="1.0"?>
<root>
- <parameter name="persons" type="long" min="1" default="4"/>
- <parameter name="deposit" type="double" min="10.0" max="999.99" nullable="no"/>
- <parameter name="email" type="string" max-len="50" match-regex="^[\d\w][\d\w\-_\.]*@([\d\w\-_]+\.)\w\w\w?$">
+ <parameter name="persons" type="long" min="1" default="4" nullable="no"/>
+ <parameter name="deposit" type="double" min="10.0" max="999.99"/>
+ <parameter name="email" type="string" max-len="50" matches-regex="^[\d\w][\d\w\-_\.]*@([\d\w\-_]+\.)\w\w\w?$">
- <constraint-set name="car-reservation">
+ <constraint-set name="car-reservation"/>
<validate name="persons"/>
<validate name="deposit" min="50.0"/>
<validate name="email"/>
@@ -153,8 +153,13 @@
request attribute </td></tr>
</table>
<p>
- If you'd like to be more specific what went wrong, you can query
- the descriptor file for attributes.
+ For debugging purposes or if you would like to iterate over the
+ validation results, <code>xsp-formval:results</code> returns a
+ <code>java.util.Map</code> containing them all.
+ </p>
+ <p>
+ If you would like to be more specific what went wrong, you can
+ query the descriptor file for attributes.
</p>
<p>
First set the url of the file or resource that contains the
1.23 +23 -0 xml-cocoon2/webapp/sitemap.xmap
Index: sitemap.xmap
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/sitemap.xmap,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- sitemap.xmap 2001/07/10 12:34:20 1.22
+++ sitemap.xmap 2001/07/10 15:26:59 1.23
@@ -101,6 +101,7 @@
<map:action name="lang-select" src="org.apache.cocoon.acting.LangSelect"/>
<map:action name="locale" src="org.apache.cocoon.acting.LocaleAction"/>
<map:action name="request" src="org.apache.cocoon.acting.RequestParamAction"/>
+ <map:action name="form-validator" src="org.apache.cocoon.acting.FormValidatorAction"/>
</map:actions>
</map:components>
@@ -130,6 +131,14 @@
<map:transform src="stylesheets/slides/slides-apachecon.xsl"/>
<map:serialize/>
</map:resource>
+
+ <map:resource name="dynamic-page">
+ <map:generate type="serverpages" src="{target}.xsp"/>
+ <map:transform src="stylesheets/dynamic-page2html.xsl">
+ <map:parameter name="view-source" value="{target}.xsp"/>
+ </map:transform>
+ <map:serialize/>
+ </map:resource>
</map:resources>
<!-- ========================== Action sets ================================ -->
@@ -402,6 +411,19 @@
<map:serialize/>
</map:match>
+ <!-- ======================= FormValidation ============================= -->
+
+ <map:match pattern="formvalidation/test">
+ <map:act type="form-validator">
+ <map:parameter name="descriptor" value="context:///docs/samples/formvalidation/descriptor.xml"/>
+ <map:parameter name="validate-set" value="car-reservation"/>
+ <map:redirect-to resource="dynamic-page" target="docs/samples/formvalidation/OK"/>
+ </map:act>
+ <map:redirect-to resource="dynamic-page" target="docs/samples/formvalidation/ERROR"/>
+ </map:match>
+
+
+
<!-- ========================== Session ================================= -->
<map:match pattern="session">
<map:redirect-to uri="session/sessionpage.xsp"/>
@@ -414,6 +436,7 @@
</map:transform>
<map:serialize/>
</map:match>
+
<!-- ========================== Stream ================================= -->
<map:match pattern="request1">
1.5 +4 -0 xml-cocoon2/webapp/docs/samples/samples.xml
Index: samples.xml
===================================================================
RCS file: /home/cvs/xml-cocoon2/webapp/docs/samples/samples.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- samples.xml 2001/07/06 21:35:05 1.4
+++ samples.xml 2001/07/10 15:27:06 1.5
@@ -141,6 +141,10 @@
that you have a database and table according to the docs/samples/sql/sql-page.xml.sql
definitions. Don't forget to change the driver information...
</sample>
+ <sample name="Form Validation" href="formvalidation/test" xlink:role="dynamic">
+ This example demonstrates the use of an action to validate user
+ input and report validation errors to the user through a taglib.
+ </sample>
</group>
<group name="System Pages">
1.1 xml-cocoon2/webapp/docs/samples/formvalidation/ERROR.xsp
Index: ERROR.xsp
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?><!-- -*- sgml -*- -->
<xsp:page
language="java"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
>
<page>
<title>Car Reservation</title>
<content>
<para>
Informal validation results <xsp:expr><xsp-formval:results/></xsp:expr>
</para>
<form action="test" method="POST">
<!-- use this to get a clue if the user had a chance to fill in
any date already -->
<input type="hidden" name="visited" value="true"/>
<xsp:logic>
boolean userHasSeenForm = (<xsp-request:get-parameter name="visited"/>!=null);
</xsp:logic>
<para>
How many persons should the car seat?
<input type="TEXT" name="persons" size="2">
<xsp:attribute name="value"><xsp-request:get-parameter name="persons" default=""/></xsp:attribute>
</input>
<xsp-formval:descriptor name="context:///docs/samples/formvalidation/descriptor.xml" constraint-set="car-reservation">
<xsp:logic>
if (userHasSeenForm) {
if (<xsp-formval:is-toosmall name="persons"/> ) {
<b> The smallest available car seats <xsp-formval:get-attribute parameter="persons" name="min"/></b>
} else if ( <xsp-formval:is-toolarge name="persons"/> ) {
<b> The largest available car seats <xsp-formval:get-attribute parameter="persons" name="max"/></b>
} else if (<xsp-formval:is-error name="persons"/> ) {
<b> Some error occured. Your input is not correct. </b>
};
};
</xsp:logic>
</xsp-formval:descriptor>
</para>
<xsp-formval:descriptor name="context:///docs/samples/formvalidation/descriptor.xml" constraint-set="car-reservation">
<para>
<xsp-formval:validate name="deposit">
Please enter your deposit EUR
<input type="TEXT" name="deposit" size="10">
<xsp:attribute
name="value"><xsp-request:get-parameter name="deposit" default=""/></xsp:attribute>
</input>
<xsp:logic>
if (userHasSeenForm) {
if ( <xsp-formval:is-null/>) {
<b> You need to specify a deposit </b>
} else if ( <xsp-formval:is-toosmall/> ) {
<b> The deposit has to be at least EUR <xsp-formval:get-attribute name="min"/></b>
} else if ( <xsp-formval:is-toolarge/> ) {
<b> The deposit has to be at most EUR <xsp-formval:get-attribute name="max"/></b>
} else if (<xsp-formval:is-notpresent/> ) {
<b></b>
} else if ( <xsp-formval:is-error/>) {
<b> Some error occured. Your input is not correct. </b>
};
};
</xsp:logic>
</xsp-formval:validate><br/>
</para>
<para>
<xsp-formval:validate name="email">
Please enter your email
<input type="TEXT" name="email" size="50">
<xsp:attribute
name="value"><xsp-request:get-parameter name="email" default=""/></xsp:attribute>
</input>
<xsp:logic>
if (userHasSeenForm) {
if ( <xsp-formval:is-nomatch/> ) {
<b> This does not seem to be a valid email
address. Expected <pre><xsp-formval:get-attribute
parameter="email" name="matches-regex"/></pre></b>
} else if ( <xsp-formval:is-toolarge/> ) {
<b> Only addresses with up to <xsp-formval:get-attribute parameter="email" name="max-len"/> characters are accepted</b>
} else if (<xsp-formval:is-notpresent/> ) {
<b></b>
} else if ( <xsp-formval:is-error/>) {
<b> Some error occured. Your input is not correct. </b>
};
};
</xsp:logic>
</xsp-formval:validate><br/>
</para>
</xsp-formval:descriptor>
<input type="submit" name="submit" value="submit"/>
</form>
</content>
</page>
</xsp:page>
1.1 xml-cocoon2/webapp/docs/samples/formvalidation/OK.xsp
Index: OK.xsp
===================================================================
<?xml version="1.0" encoding="ISO-8859-1"?><!-- -*- sgml -*- -->
<xsp:page
language="java"
xmlns:xsp="http://apache.org/xsp"
xmlns:xsp-formval="http://apache.org/xsp/form-validator/2.0"
xmlns:xsp-request="http://apache.org/xsp/request/2.0"
>
<page>
<title>Car Reservation</title>
<content>
<para>You've successfully reserved a car for
<b><xsp-request:get-parameter name="persons"/></b> with a deposit of
<b>EUR <xsp-request:get-parameter name="deposit"/></b>.</para>
<para> Details will be sent to your e-mail address
<tt><xsp-request:get-parameter name="email"/></tt></para>
<para>You can make a new reservation <a href="test">here</a></para>
</content>
</page>
</xsp:page>
1.1 xml-cocoon2/webapp/docs/samples/formvalidation/descriptor.xml
Index: descriptor.xml
===================================================================
<?xml version="1.0"?>
<root>
<parameter name="persons" type="long" min="2" default="9" nullable="yes"/>
<parameter name="deposit" type="double" min="10.0" max="999.99"/>
<parameter name="email" type="string" max-len="50" matches-regex="^[\d\w][\d\w\-_\.]*@([\d\w\-_]+\.)\w\w\w?$"/>
<constraint-set name="car-reservation">
<validate name="persons"/>
<validate name="deposit" min="50.0"/>
<validate name="email"/>
</constraint-set>
</root>
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org