Hello,
I solved the problem getting database connection so that I created
Registrator java class which implements Serviceable interface. Then
the flowscript loads Registrator class by method cocoon.createObject()
in order to allow accessing Avalon services.

Now I need to solve another problem. When the user with the specified
username exists in the database, Registrator class thows
RegistrationException and the form shall be displayed again with an
error message at the corresponding textfield. I have following questions:

1. Is it possible to specify exception class in catch clause? Currently
  I use instanceof operator.

2. How to setup errorMessage for the specific widget?

Here is the script:

registration() {

   var form = new Form("forms/registration.xml")
   var success

   do {
       success = true
       form.showForm("registration-display-pipeline")

       var model = form.getModel()

       var registrator = cocoon.createObject("Registrator")

       try {
           registrator.register(model.username, model.password)
       } catch(e) {
           if(e instanceof RegistrationException) {
               success = false
           } else throw e
       }
   } while(!success)

   cocoon.sendPage("success.html")
}




Antonio Gallardo wrote:
Servus Martin!

Martin Rusnak dijo:

Dear All,

I am using CForms/flow-script. When the form is submited, I usually call
a methods in my database utility classes from flow-script to perform a
DB queries. For that I need to obtain a database connection from the
pool. I tried the method: Database.getConnection("connection-id"), but
it returns ScriptableConnection class. Is it possible to get reference
to java.sql.Connection in flow-script?


I never used directly java.sql.* in JSFlow, but I think it should work.


What is the preferred way to
handle database calls in flow-script?


Well, I think the "prefered" way depends of how much you will use
databases. There are diferent approach:

The olders are:

1-ESQL tranformer
2-ESQL logicsheet in XSP
3-Modular DB Actions - http://wiki.apache.org/cocoon/ReinhardHorn

The "newer" approach is using a O/R mapping tool - i.e.:Apache OJB,
Hibernate, etc. This approach is particular powerful because allow you to
have better SoC + all the advantage that a O/R tool + better abstraction.

You can find more info in section 7. "Databases" at:
http://wiki.apache.org/cocoon/HowTos

Best Regards,

Antonio Gallardo.


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



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



Reply via email to