Hi,

it was may mistake, of course it's wrong to use the request object as a
parameter to the function processForm. Instead I have to pass it the
same viewdata (A Javascript object) as when sending the form.

And yes, main_template is in the main-display-pipeline and I changed the
action attribute appropriately.
I think you can omit the action attribute altogether, after form submit
you end up in the same flowscript function. Here you can check for GET
or POST method of request to decide whether you have some form data to
be stored.

Thank you for your quick answer, anyway.

Cheers Oliver


On Thu, 2014-11-13 at 08:59 +0100, Barbara Slupik wrote:
> Hello
> 
> Do you have main_template.xml in your main-display-pipeline? Perhaps  
> is is enough to define your form template without continuation, like  
> <ft:form-template action="xxx" method="POST">. Also perhaps you don't  
> need any processing in flow.js after form.showForm("main-display- 
> pipeline", data).
> 
> Barbara
> 
> On 12 Nov 2014, at 17:22, Oliver Bienert wrote:
> 
> > Hello Cocoon users,
> >
> > I have created a cocoon 2.2 project. It uses cforms to present a  
> > record
> > from an h2 database to the user. I use continuations and a page  
> > redirect
> > to switch between records:
> >
> >        var form = new Form("cocoon://resource/internal/ 
> > main_definition.xml");
> >        form.createBinding("cocoon://resource/internal/ 
> > main_binding.xml");
> >        // Get data from database and update model
> >        var bean = javaMain.fillBean(active);
> >        // Load bean data into form
> >        form.load(bean);
> >        form.showForm("main-display-pipeline", data);
> >        // After submit: Load form data into model
> >        form.save(bean);
> >        // Save bean to database
> >        ...
> >        // Issue a http redirect from client
> >        cocoon.sendPage("redirect");
> >
> > In the sitemap I issue the redirect via redirect-to uri="..."
> >
> > Works so far but I don't really feel this the right way to present  
> > records to a user.
> > I mean I don't need a flow between pages so IMHO I don't need  
> > continuation.
> >
> > I found out about sending a form stateless by using sendForm.
> > When the form is submitted I could reattached data by  
> > form.processForm(viewdata).
> >
> > Now here I'm stuck. How do I create an appropriate viewData map? I  
> > googled several hours, but to no avail.
> > I found a solution with javaflow, but that's not an option for me:
> >
> >        FormInstance form = new FormInstance("forms/ 
> > formdefinition.xml");
> >        Form model = (Form) form.getModel();
> >        FormContext formContext = new FormContext(getRequest(),  
> > Locale.getDefault());
> >        model.process(formContext);
> >
> > How would I do that in Javascript?
> >
> > I tried something along those lines:
> >
> >        function processForm() {
> >            var javaMain = cocoon.getComponent("mainbean");
> >            var form = new Form("cocoon://resource/internal/ 
> > main_definition.xml");
> >            form.createBinding("cocoon://resource/internal/ 
> > main_binding.xml");
> >            var request = cocoon.request;
> >            var bean = javaMain.newBean();
> >            form.processForm(request);
> >            form.save(bean);
> >        }
> >
> > but get an error:
> >
> > org.mozilla.javascript.EvaluatorException:  
> > "servlet:org.apache.cocoon.forms.impl.servlet+:/resource/internal/ 
> > flow/javascript/Form.js", line 157: Java class  
> > "org.apache.cocoon.environment.http.HttpRequest" has no public  
> > instance field or method named "CocoonFormsInstance".
> >
> > How is this supposed to work?
> >
> > Regards Oliver
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> > For additional commands, e-mail: users-h...@cocoon.apache.org
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> For additional commands, e-mail: users-h...@cocoon.apache.org
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
For additional commands, e-mail: users-h...@cocoon.apache.org

Reply via email to