Christian,
Thanks a ton.
1. Checked in your docs. Please take a look.
2. XSP should be working now.
3. Did you try using "context:///" (note the extra '/') instead of context://. If this
does not
work, please let me know.
If all's well, please submit your sample.
Thanks,
dims
--- Christian Haul <[EMAIL PROTECTED]> wrote:
> On 15.Jun.2001 -- 04:34 AM, Davanum Srinivas wrote:
> > Also, It will be *REALLY* helpful if you could submit a sample that shows off how
>to use the
> > LogicSheet and actions. Finally Please consider submitting some documentation
>similar to the
> ones
> > in xdocs directory to make it easy for people to make use of your contribution.
>FYI, You can
> use
> > "build docs" to build the documentation.
>
> Davanum,
>
> the attached file is the reworked documentation from the patch
> accompanying mail. I have not provided entries for docs-book.xml or
> site-book.xml since I was unsure about where to put it.
>
> Would be quite nice if there would be some guide line for
> docs eg. what documents qualify as "overview" and what as
> "technical".
>
> An example is not included because
> a) xsp seems to be broken right now (CVS monday)
> b) I'm still not able to use context:// in a sub-sitemap. The file is
> always searched for in $COCOON_DIR
>
> Chris.
>
> --
> C h r i s t i a n H a u l
> [EMAIL PROTECTED]
> fingerprint: 99B0 1D9D 7919 644A 4837 7D73 FEF9 6856 335A 9E08
> > <?xml version="1.0"?>
> <!DOCTYPE document SYSTEM "dtd/document-v10.dtd">
> <document>
> <header>
> <title>Using Form Validation</title>
> <version>0.1</version>
> <type>Overview document</type>
> <authors>
> <person name="Christian Haul" email="[EMAIL PROTECTED]"/>
> </authors>
> </header>
> <body>
> <s1 title="Introduction?">
> <p>
> For most web applicatipns input is essential. Cocoon provides a
> variety of modules to support basic interaction like simple syntax
> checking of input data or writing input data to databases.
> </p>
> <p>
> This is about sntax checking. See
> org.apache.cocoon.acting.DatabaseAbstractAction (in javadocs) for
> details on database interaction.
> </p>
> <p>
> FormValidatorAction communicates to the application a verbose
> error status through an request attribute. In addition a taglib
> allows easy access to the results. On top of that this taglib
> gives access to the attributes for parameters declared in those
> sections in descriptor.xml relevant to the validation process.
> </p>
> <s2 title="The Descriptor File">
> <p>
> For details on the syntax of the descriptor file see
> javadocs. Basically it constists of two sections, a list of
> parameters and their properties and a list of constraints or
> constraint sets. The file syntax is set up so that it can be
> shared with the database actions.
> </p>
> <source>
> <![CDATA[
> <?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?$">
>
> <constraint-set name="car-reservation">
> <validate name="persons"/>
> <validate name="deposit" min="50.0"/>
> <validate name="email"/>
> </constraint-set>
>
> </root>
> ]]>
> </source>
> <p>
> The aboce could for example describe expected input from a reservation
> form. Specifications in a constraint set take preceedence over
> the general ones.
> </p>
> </s2>
> <s2 title="Sitemap Usage">
> <p>
> To take advantage of the form validator action create two
> pages. One for the input form and one indicating the acceptance of
> the reservation. Create a pipeline in your sitemap so that the
> confirmation page is only shown when the action completed
> successfully and the input form is returned otherwise.
> </p>
> <source>
> <![CDATA[
> <?xml version="1.0"?>
> <map:match pattern="car-reservation">
> <map:act type="form-validator">
> <!-- add you favourite database action here -->
> <map:parameter name="descriptor" value="descriptor.xml"/>
> <map:parameter name="validate-set" value="car-reservation"/>
> <map:generate type="serverpages" src="OK.xsp"/>
> <map:transform src="stylesheets/dynamic-page2html.xsl"/>
> <map:serialize/>
> </map:act>
> <map:generate type="serverpages" src="test/ERROR.xsp"/>
> <map:transform src="stylesheets/dynamic-page2html.xsl"/>
> <map:serialize/>
> </map:match>
> ]]>
> </source>
> <p>
> Note here that you may not use a redirection to point to the
> pages if you would like to access the validation results e.g. on
> the error page. A redirection would create a new request object
> and thus discard the validation results.
> </p>
> </s2>
> <s2 title="XSP Usage">
> <p>
> To give the user some feedback why her/his submitted data was rejected
> there is a special taglib "xsp-formval". Declare its name space as
> usual.
> </p>
> <p>
> If only interested in validation results, just
> </p>
> <source>
> <![CDATA[
> <xsp:logic>
> if (!<xsp-formval:is-ok name="persons"/>) {
> <myapp:error>(ERROR)</myapp:error>
> };
> </xsp:logic>
> ]]>
> </source>
> <p>
> Internationalization issues are a separate concern and are not
> discussed here.
> </p>
> <p>
> Currently the following validation result codes are supported:
> </p>
> <table>
> <tr><th>tag</th><th>Meaning</th></tr>
> <tr><td>xsp-formval:is-ok</td><td>no error occurred,
> parameter successfully
> checked</td></tr>
> <tr><td>xsp-formval:is-error</td><td>some error occurred,
> this is a result that
> is never set but serves
> as a comparison target
> </td></tr>
> <tr><td>xsp-formval:is-null</td><td>the parameter is null but
> isn't allowed to</td></tr>
> <tr><td>xsp-formval:is-toosmall</td><td>either value or
> length in case of a
> string is less than
> the specified
> minimum</td></tr>
> <tr><td>xsp-formval:is-toolarge</td><td>either value or
> length in case of a
> string is greater
> than the specified
> maximum</td></tr>
>
> <tr><td>xsp-formval:is-nomatch</td><td>a string parameter's
> value is not matched
> by the specified
> regular expression</td></tr>
> <tr><td>xsp-formval:is-notpresent</td><td>this is returned
> when the result of
> a validation is
> requested but no
> such result is
> found in the
> 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.
> </p>
> <p>
> First set the url of the file or resource that contains the
> parameter descriptions and constraint sets. This needs to be an
> ancestor to all other tags (of this taglib). Multiple use of this
> tag is allowed (although probably not necessary).
> </p>
> <p>
> You need to do this only if you plan to query the
> descriptor file or if you'd like to use the shorthand
> below.
> </p>
> <source>
> <![CDATA[
> <xsp-formval:descriptor name="descriptor.xml" constraint-set="reservation">
> deposit must be at least EUR <xsp-formval:get-attribute parameter="deposit"
>name="min"/>
> </xsp-formval:descriptor>
> ]]>
> </source>
> <p>
> If you need to use one parameter a lot, there's a short hand. Use
> this e.g. if you'd like to set up the properties of an input tag
> according to the information from the descriptor file or if you'd
> like to give detailed error messages.
> </p>
> <p>
> Note that you can specify additional attributes in the
> description file that are not understood (and therefore ignored)
> by the FormValidatorAction but that could be queried here. This
> might be e.g. the size of the input field which might be
> different from the max-len a parameter can take.
> </p>
> <source>
> <![CDATA[
> <xsp-formval:descriptor name="descriptor.xml" constraint-set="car-reservation">
> <xsp-formval:validate name="deposit">
> <xsp:logic>
> if (<xsp-formval:is-null/>) {
> <myapp:error> (you must specify a deposit)) </myapp:error>
> } else if ( <xsp-formval:is-toosmall/> ) {
> <myapp:error> (deposit is too small (< <xsp-formval:get-attribute
> name="min"/>))</myapp:error>
> } else if ( <xsp-formval:is-toolarge/> ) {
>
=== message truncated ===>
---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]
=====
Davanum Srinivas, JNI-FAQ Manager
http://www.jGuru.com/faq/JNI
__________________________________________________
Do You Yahoo!?
Spot the hottest trends in music, movies, and more.
http://buzz.yahoo.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]