| 

.NET C# Java Javascript Exception

Frage zu webflows

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Frage zu webflows

Mario - 22.09.2009 15:41
Hallo beisammen

Ich versuche mich gerade an Webflows. Dazu stellen sich mir folgende Fragen:

Soweit ich verstanden habe, muss jede Domainklasse die im Flow verwendet wird Serializable implementieren. Deshalb sollte man, wenn möglich, eher dazu übergehen mit CommandObjects zu arbeiten, da man damit vermeiden kann die Domainklassen (und ihre referenzierten Klassen) zu serialiseren, was ja unter Umständen ziemlich komplex werden kann.

In meinem Fall (einer Anwendung um sich irgendwo zu registrieren) habe ich also eine Klasse RegistrationCommand, die so aussieht:

 
class RegistrationCommand implements Serializable{    
    String authName         //E-Mail for unique login
    String password         //passwod for login    

    static constraints = {        
        authName blank:false, nullable:false, email:true,
                validator: {an ->
                    Authentication authentication = null
                    //hier wird die Domain-Klasse bemüht um zu sehen ob die eingegebene MailAdresse 
                    schon vergeben ist
                    authentication= Authentication.findByName(an)
                    if(authentication != null)
                    //Wenn die eingegebene MailAdresse schon vergeben ist, ist "authentication" != null
                    und der Fehler wird angezeigt
                    return ['registrationCommand.authName.already.in.use']
                }
        password blank:false, nullable:false                         
    }

}

Im Webflow selber will ich prüfen, ob die eingegebene E-Mail Adresse schon vergeben ist. Dazu muss ich aber ja auf die Datenbank zugreifen, nämlich auf die Tabelle, in der alle Bisher angelegten Accounts verwaltet werden (die heißt hier Authentication) Das führt aber dazu, dass die Domainklasse Authentication auch Serializable implementieren muss um im Flow verwendet werden zu können.

Eigentlich wollte ich umgehen, dass ich Domainklassen habe, die Serializable implementieren müssen, aber es scheint nicht anders möglich zu sein, oder sehe ich das falsch?


Die zweite Frage ist, wie kann ich Parameter dieim Webflow existieren an Domainklassen binden damit die Daten dann persistent gespeichert werden? Wenn ich im Flow folgendes mache:

 
def registrationFlow = {
...
     finishRegistration {
        Authentication auth = new Authentication(name:flow.rcInstance.authName, passwordHash:flow.rcInstance.password)
       auth.save()
       redirect(controller:"registration")
    }
}

gibt es einen Fehler, nämlich:

 
No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional 
one here

In einem anderen Fall habe ich versucht das erzeugte Objekt als Parameter an eine Action außerhalb des Webflow weiterzureichen, mit dem Erfolg, dass nichts ankam...

 
finishRegistration {           
            Authentication auth = new Authentication(name:flow.rcInstance.authName, passwordHash:flow.rcInstance.password)
            
            redirect(controller:"registrationCommand", action:"persist", params:[auth:auth])
          
        }
}

def persist = {Authentication auth ->
      auth.save()
}

Ich hoffe, ihr könnt mir auf die Sprünge helfen...

Gruß
Mario


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Frage zu webflows" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.