On 2005-07-01 07:28:07 -0700, "Johannes Becker" <[EMAIL PROTECTED]> said:

One answer that was posted by Mark:
You can generate your form definition files using jxtemplate (in a cocoon
pipeline). Then when you want to reference your definition file, use
cocoon:// to access it.


My problem: I don't know how to implement this. I was looking for samples, but I
couldn't find any.

Could anyone please post me a simple example how to implement this.

Make a template file to generate your form definition, e.g. "form-definition.jx". In there you write the markup just exactly like in your original post, e.g.:

         <fd:validation>
                <fd:range min="5" max="#{number/max}"/>
        </fd:validation>

In your sitemap:

        <match pattern="get-form-definition">
<call function="getFormDefinition"/> <!-- this would probably have some parameters too, whatev... -->
        </match>
        .
        .
        .
        <match pattern="generate-form-definition">
                <generate type="jx" src="form-defintion.jx"/>
                <serialize type="xml"/>
        </match>

Add this flowscript:

        function getFormDefinition() {
                .
                .
                .
                cocoon.sendPage (
                                'generate-form-definition',
                                {'number':  {'max': 42}}        // or any bean 
or JS object w/ these properties...
                        );
        }

...and finally in your form controller flowscript:

        var form = new Form ('cocoon:/get-form-definition);

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=

That should get you going. Although as i said before, I don't feel that this is a great approach. It just smells funny to me. Too complicated for the problem you're trying to solve. And performance will not be great, because a dynamically-generated form definition can't be cached. Doing this validation by hand is not hard, and if you do then the form definition itself is static, and will be cached once it's been parsed the first time.

But, suit yourself... :-)

cheers
—ml—



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to